Hệ thống Admin trong Python Django

Lập trình web với Python bằng Django

0.0 (0 đánh giá)
Tạo bởi Kteam Cập nhật lần cuối 17:55 29-10-2019 16.006 lượt xem 2 bình luận
Học nhanh

Danh sách bài học

Hệ thống Admin trong Python Django

Ghi chú

Nội dung bài viết bạn đang xem được update từ tháng 06/2019. Vì vậy sẽ có đôi chút khác biệt giữ VIDEO và NỘI DUNG BÀI VIẾT.

Chúng ta sẽ có nhiều cập nhập hơn về cả bài viết lẫn video trong thời gian tới. Nhớ like/ share hoặc đánh giá 5 sao để Kteam có động lực nhé! 

Cảm ơn các bạn! 


Dẫn nhập

Trong bài này Kteam sẽ nói cho các bạn về hệ thống Admin được hỗ trợ trong Framework Django.


Nội dung

Để theo dõi bài này tốt nhất, bạn nên xem qua bài:

Bài này sẽ giới thiệu những nội dung sau:

  • Giới thiệu hệ thống Admin
  • Tạo tài khoản admin để truy cập hệ thống Admin
  • Cách đưa Model vào Admin quản lý
  • Cách tuỳ biến Admin

Giới thiệu hệ thống Admin

Thường ở mỗi website, đặc biệt là web bán hàng, blog hay tin tức thì ta cần một hệ thống admin để quản lý những vấn đề như thêm sửa xoá dữ liệu. Công việc xây dựng admin khá là mất nhiều thời gian và gây ra sự nhàm chán. Ở trong Django đã cung cấp cho ta một hệ thống admin rất là tiện lợi mà ta không cần phải viết ra nó.


Tạo tài khoảm admin để truy cập hệ thống Admin

Bây giờ Kteam sẽ tạo một tài khoản admin để truy cập vào hệ thống, ta sẽ mở terminal vào gõ lệnh:

python manage.py createsuperuser

Sau khi nhập lệnh, hệ thống yêu cầu thông tin tài khoản admin, bạn hay nhập username, email password để khởi tạo:


 

Bây giờ mình bật server lên và vào đường dẫn /admin và dùng tài khoản vừa tạo để đăng nhập:

 
Sau khi đăng nhập thành công, Admin mặc định sẽ quản lý 2 bảng là User (bảng lưu các user trong hệ thống), và bảng Group nhằm tạo các nhóm trong user với những quyền có thể thực thi trong hệ thống.


Cách đưa Model vào cho Admin quản lý

Bây giờ Kteam muốn hệ thống Admin có thể quản lý model Post từ bài trước. Đầu tiên là vào file admin.py trong app blog. Import model Post qua và register vào bằng dòng code dưới đây.

from django.contrib import admin
from .models import Post
# Register your models here.
admin.site.register(Post)

Bây giờ ta reload trang admin thì sẽ hiển thị ra:

 Vào trong Post ta sẽ thấy 2 bài viết mà ta đã tạo trước đó:


Cách tuỳ biến Admin

Django có thể hỗ trợ cho ta tuỳ biến hệ thống Admin. Như ở phần quản lý Post hiện tại thì chỉ mới hiển thị tiêu đề của Post, giờ Kteam muốn bảng đó hiện thị tiêu đề và ngày viết bài thì làm như sau:

Đầu tiên là phải tạo 1 class PostAdmin kế thừa class admin.ModelAdmin, khởi tạo biến list_display kiểu list chứa 2 string title date tương ứng 2 field của bảng Post. Sau đó đưa PostAdmin vào tham số register cùng với Post:

class PostAdmin(admin.ModelAdmin):
    list_display = ['title', 'date']

admin.site.register(Post, PostAdmin)

Giờ ta lại kết quả:

Tiếp theo, Kteam muốn tạo filter để lọc bài viết, Kteam sẽ lọc bài viết theo ngày viết bài thì tạo thêm một list là  list_filter chứa giá trị date tương ứng field của bảng Post:

class PostAdmin(admin.ModelAdmin):
    list_display = ['title', 'date']
    list_filter = ['date']

admin.site.register(Post, PostAdmin)

Ta sẽ thấy bên phải có thêm một bảng filter lọc theo ngày, tuần, tháng và năm

Cuối cùng, Kteam muốn tạo một thanh search để dễ dàng tìm kiếm bài viết, Kteam muốn tìm kiếm bài viết dựa vào tiêu đề của bài thì thêm một biến search_fields chứa giá trị title:

class PostAdmin(admin.ModelAdmin):
    list_display = ['title', 'date']
    list_filter = ['date']
    search_fields = ['title']

admin.site.register(Post, PostAdmin)

Bây giờ ta hãy thử nhập tiêu đề để thử tìm kiếm:


Kết

Như vậy Kteam đã hướng dẫn các bạn xong cách sử dụng hệ thống Admin trong Python Django.

Ở bài tiếp theo, Kteam sẽ giới thiệu cho các bạn LIỆT KÊ DANH SÁCH BÀI VIẾT TRONG PYTHON DJANGO.

Cảm ơn các bạn đã theo dõi bài viết. Hãy để lại bình luận hoặc góp ý của mình để phát triển bài viết tốt hơn. Đừng quên “Luyện tập – Thử thách – Không ngại khó”.


Thảo luận

Nếu bạn có bất kỳ khó khăn hay thắc mắc gì về khóa học, đừng ngần ngại đặt câu hỏi trong phần BÌNH LUẬN bên dưới hoặc trong mục HỎI & ĐÁP trên thư viện Howkteam.com để nhận được sự hỗ trợ từ cộng đồng.

Nội dung bài viết

Tác giả/Dịch giả

Khóa học

Lập trình web với Python bằng Django

Lập trình web với Python bằng Django

Đánh giá

Bình luận

Để bình luận, bạn cần đăng nhập bằng tài khoản Howkteam.

Đăng nhập
thanhthanhsel đã bình luận 19:32 15-10-2019
Ad cho em hỏi sao khi em gõ vào web: localhost:8000/admin xuất hiện lỗi này và cách sửa lỗi:
A server error occurred.  Please contact the administrator.
Không có video.