admin組件使用
Django 提供了基于 web 的管理工具。
Django 自動管理工具是 django.contrib 的一部分。你可以在項目的 settings.py 中的 INSTALLED_APPS 看到它:
# Application definitionINSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', "app01"]
django.contrib是一套龐大的功能集,它是Django基本代碼的組成部分。
激活管理工具
通常我們在生成項目時會在 urls.py 中自動設置好,
from django.conf.urls import urlfrom django.contrib import adminurlpatterns = [ url(r'^admin/', admin.site.urls),]
當這一切都配置好后,Django 管理工具就可以運行了。
使用管理工具
啟動開發服務器,然后在瀏覽器中訪問 http://127.0.0.1:8000/admin/,得到登陸界面,你可以通過命令 python manage.py createsuperuser 來創建超級用戶。
為了讓 admin 界面管理某個數據模型,我們需要先注冊該數據模型到 admin
from django.db import modelsclass Author(models.Model): name=models.CharField( max_length=32) age=models.IntegerField() def __str__(self): return self.nameclass Publish(models.Model): name=models.CharField( max_length=32) email=models.EmailField() def __str__(self): return self.nameclass Book(models.Model): title = models.CharField( max_length=32) publishDate=models.DateField() price=models.DecimalField(max_digits=5,decimal_places=2) publisher=models.ForeignKey(to="Publish") authors=models.ManyToManyField(to='Author') def __str__(self): return self.title
admin的定制
在admin.py中只需要講Mode中的某個類注冊,即可在Admin中實現增刪改查的功能,如:
admin.site.register(models.UserInfo)
但是,這種方式比較簡單,如果想要進行更多的定制操作,需要利用ModelAdmin進行操作,如:
方式一:
class UserAdmin(admin.ModelAdmin): list_display = ('user', 'pwd',) admin.site.register(models.UserInfo, UserAdmin) # 第一個參數可以是列表方式二:
@admin.register(models.UserInfo) # 第一個參數可以是列表class UserAdmin(admin.ModelAdmin): list_display = ('user', 'pwd',)ModelAdmin中提供了大量的可定制功能,如
1. list_display,列表時,定制顯示的列。
@admin.register(models.UserInfo)class UserAdmin(admin.ModelAdmin): list_display = ('user', 'pwd', 'xxxxx') def xxxxx(self, obj): return "xxxxx"2. list_display_links,列表時,定制列可以點擊跳轉。
@admin.register(models.UserInfo)class UserAdmin(admin.ModelAdmin): list_display = ('user', 'pwd', 'xxxxx') list_display_links = ('pwd',)
新聞熱點
疑難解答