日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Django Admin 管理工具的實現

瀏覽:103日期:2024-09-08 08:47:10

Django 自動管理工具是 django.contrib 的一部分。你可以在項目的 settings.py 中的 INSTALLED_APPS 看到它:

/HelloWorld/HelloWorld/settings.py 文件代碼:

INSTALLED_APPS = ( ’django.contrib.admin’, ’django.contrib.auth’, ’django.contrib.contenttypes’, ’django.contrib.sessions’, ’django.contrib.messages’, ’django.contrib.staticfiles’, )

django.contrib是一套龐大的功能集,它是Django基本代碼的組成部分。

激活管理工具

通常我們在生成項目時會在 urls.py 中自動設置好,我們只需去掉注釋即可。

配置項如下所示:

/HelloWorld/HelloWorld/urls.py 文件代碼:

# urls.py from django.conf.urls import url from django.contrib import admin urlpatterns = [ url(r’^admin/’, admin.site.urls), ]

當這一切都配置好后,Django 管理工具就可以運行了。

使用管理工具

啟動開發服務器,然后在瀏覽器中訪問 http://127.0.0.1:8000/admin/,得到如下界面:

Django Admin 管理工具的實現

你可以通過命令 python manage.py createsuperuser 來創建超級用戶(超級用戶創建之前應該先執行數據庫遷移命令形成數據庫表),這里已經前已過了,如下所示:

# python manage.py createsuperuserUsername (leave blank to use ’root’): adminEmail address: admin@runoob.comPassword:Password (again):Superuser created successfully.[root@solar HelloWorld]#

之后輸入用戶名密碼登錄,界面如下:

Django Admin 管理工具的實現

為了讓 admin 界面管理某個數據模型,我們需要先注冊該數據模型到 admin。比如,我們之前在 TestModel 中已經創建了模型 Test 。修改 TestModel/admin.py:

HelloWorld/TestModel/admin.py: 文件代碼:

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

刷新后即可看到 Testmodel 數據表:

Django Admin 管理工具的實現

復雜模型

管理頁面的功能強大,完全有能力處理更加復雜的數據模型。

先在 TestModel/models.py 中增加一個更復雜的數據模型:

HelloWorld/TestModel/models.py: 文件代碼:

from django.db import models # Create your models here. class Test(models.Model): name = models.CharField(max_length=20) class Contact(models.Model): name = models.CharField(max_length=200) age = models.IntegerField(default=0) email = models.EmailField() def __unicode__(self): return self.name class Tag(models.Model): contact = models.ForeignKey(Contact, on_delete=models.CASCADE,) name = models.CharField(max_length=50) def __unicode__(self): return self.name

這里有兩個表。Tag 以 Contact 為外部鍵。一個 Contact 可以對應多個 Tag。

我們還可以看到許多在之前沒有見過的屬性類型,比如 IntegerField 用于存儲整數。

Django Admin 管理工具的實現

在 TestModel/admin.py 注冊多個模型并顯示:

HelloWorld/TestModel/admin.py: 文件代碼:

from django.contrib import admin from TestModel.models import Test,Contact,Tag # Register your models here. admin.site.register([Test, Contact, Tag])

刷新管理頁面,顯示結果如下:

Django Admin 管理工具的實現

在以上管理工具我們就能進行復雜模型操作。

如果你之前還未創建表結構,可使用以下命令創建:

$ python manage.py migrate TestModel # 創建表結構自定義表單

我們可以自定義管理頁面,來取代默認的頁面。比如上面的 “add” 頁面。我們想只顯示 name 和 email 部分。修改 TestModel/admin.py:

HelloWorld/TestModel/admin.py: 文件代碼:

from django.contrib import admin from TestModel.models import Test,Contact,Tag # Register your models here. class ContactAdmin(admin.ModelAdmin): fields = (’name’, ’email’) admin.site.register(Contact, ContactAdmin) admin.site.register([Test, Tag])

以上代碼定義了一個 ContactAdmin 類,用以說明管理頁面的顯示格式。

里面的 fields 屬性定義了要顯示的字段。

由于該類對應的是 Contact 數據模型,我們在注冊的時候,需要將它們一起注冊。顯示效果如下:

Django Admin 管理工具的實現

我們還可以將輸入欄分塊,每個欄也可以定義自己的格式。修改 TestModel/admin.py為:

HelloWorld/TestModel/admin.py: 文件代碼:

from django.contrib import admin from TestModel.models import Test,Contact,Tag # Register your models here. class ContactAdmin(admin.ModelAdmin): fieldsets = ([’Main’,{’fields’:(’name’,’email’),}],[’Advance’,{ ’classes’: (’collapse’,), # CSS ’fields’: (’age’,),}]) admin.site.register(Contact, ContactAdmin) admin.site.register([Test, Tag])

上面的欄目分為了 Main 和 Advance 兩部分。classes 說明它所在的部分的 CSS 格式。這里讓 Advance 部分隱藏:

Django Admin 管理工具的實現

Advance 部分旁邊有一個 Show 按鈕,用于展開,展開后可點擊 Hide 將其隱藏,如下圖所示:

Django Admin 管理工具的實現

內聯(Inline)顯示

上面的 Contact 是 Tag 的外部鍵,所以有外部參考的關系。

而在默認的頁面顯示中,將兩者分離開來,無法體現出兩者的從屬關系。我們可以使用內聯顯示,讓 Tag 附加在 Contact 的編輯頁面上顯示。

修改TestModel/admin.py:

HelloWorld/TestModel/admin.py: 文件代碼:

from django.contrib import admin from TestModel.models import Test,Contact,Tag # Register your models here. class TagInline(admin.TabularInline): model = Tag class ContactAdmin(admin.ModelAdmin): inlines = [TagInline] # Inline fieldsets = ([’Main’,{ ’fields’:(’name’,’email’),}],[’Advance’,{ ’classes’: (’collapse’,), ’fields’: (’age’,),}] ) admin.site.register(Contact, ContactAdmin) admin.site.register([Test])

顯示效果如下:

Django Admin 管理工具的實現

列表頁的顯示

在 Contact 輸入數條記錄后,Contact 的列表頁看起來如下:

Django Admin 管理工具的實現

我們也可以自定義該頁面的顯示,比如在列表中顯示更多的欄目,只需要在 ContactAdmin 中增加 list_display 屬性:

HelloWorld/TestModel/admin.py: 文件代碼:

from django.contrib import admin from TestModel.models import Test,Contact,Tag # Register your models here. class TagInline(admin.TabularInline): model = Tag class ContactAdmin(admin.ModelAdmin): list_display = (’name’,’age’, ’email’) # list inlines = [TagInline] # Inline fieldsets = ([’Main’,{ ’fields’:(’name’,’email’),}],[’Advance’,{ ’classes’: (’collapse’,), ’fields’: (’age’,),}] ) admin.site.register(Contact, ContactAdmin) admin.site.register([Test])

刷新頁面顯示效果如下:

Django Admin 管理工具的實現

搜索功能在管理大量記錄時非常有,我們可以使用 search_fields 為該列表頁增加搜索欄:

HelloWorld/TestModel/admin.py: 文件代碼:

from django.contrib import admin from TestModel.models import Test,Contact,Tag # Register your models here. class TagInline(admin.TabularInline): model = Tag class ContactAdmin(admin.ModelAdmin): list_display = (’name’,’age’, ’email’) # list search_fields = (’name’,) inlines = [TagInline] # Inline fieldsets = ([’Main’,{ ’fields’:(’name’,’email’),}], [’Advance’,{ ’classes’: (’collapse’,), ’fields’: (’age’,), }] ) admin.site.register(Contact, ContactAdmin) admin.site.register([Test])

在本實例中我們搜索了 name 為 runoob 的記錄,顯示結果如下:

Django Admin 管理工具的實現

Django Admin 管理工具還有非常多實用的功能,感興趣的同學可以深入研究下。

到此這篇關于Django Admin 管理工具的實現的文章就介紹到這了,更多相關Django Admin 管理工具內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Django
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产精品99在线观看| 爽好多水快深点欧美视频| 日韩一二三区在线观看| 99久久久久久中文字幕一区| 久久中文亚洲字幕| 国产精品老牛| 欧美一区91| 黄色精品视频| 天堂资源在线亚洲| 综合激情婷婷| 国产精品香蕉| 欧洲亚洲一区二区三区| 99国产成+人+综合+亚洲欧美| 亚洲精品自拍| 久久亚洲黄色| 亚洲一级影院| 亚洲aa在线| 国产一区二区三区不卡视频网站 | 久久久久国产| 视频在线观看国产精品| 久久精品97| 99精品网站| 天堂av一区| 日韩欧美一区二区三区在线视频| 亚洲精华国产欧美| 国产精品久久久久77777丨 | 国产激情久久| 国产一区日韩欧美| 国产免费av国片精品草莓男男| 超碰超碰人人人人精品| 国产精品日韩欧美一区| 国产精品视频首页| 欧美午夜精品一区二区三区电影| 少妇精品久久久一区二区三区| 国产成人免费精品| 美女久久网站| 精品视频高潮| 亚洲不卡视频| 欧美成人综合| 国产伦乱精品| 免费久久精品| 国产精品久久亚洲不卡| 国产精品日韩| 日本不卡免费高清视频在线| 日本久久一区| 1000部精品久久久久久久久| 欧美一级二区| 性一交一乱一区二区洋洋av| 精品视频97| 日本欧美韩国一区三区| 一本一道久久a久久精品蜜桃| 国产劲爆久久| 亚洲精品无播放器在线播放| 亚洲婷婷免费| 精品免费av| 日韩精品91亚洲二区在线观看| 激情偷拍久久| 亚洲综合电影| 九九九精品视频| 日韩精品视频在线看| 亚洲成人精选| 国产精品专区免费| 国产福利资源一区| 日本亚洲欧洲无免费码在线| 国产精品日本| 九九久久电影| 播放一区二区| av免费不卡国产观看| 国产精品日韩精品中文字幕| 免费在线欧美视频| 亚州av乱码久久精品蜜桃| 欧洲亚洲一区二区三区| 亚洲午夜天堂| 91亚洲国产成人久久精品| 国产精品亚洲欧美| 91嫩草精品| 日韩久久99| 亚洲精品在线a| 亚洲精品伊人| 日韩国产欧美在线播放| 日韩精品免费一区二区夜夜嗨| 首页亚洲欧美制服丝腿| 三级在线观看一区二区 | 四虎影视精品| 国产精品99一区二区三| 精品一区二区三区免费看| 欧美日韩一区自拍| 日本国产欧美| 国产欧美日韩一区二区三区在线| 91亚洲精品视频在线观看| 日韩av影院| 国产精品尤物| 精品视频一区二区三区在线观看| 欧美国产极品| 激情综合婷婷| 欧美xxxx中国| 亚洲天堂免费电影| 99久久激情| 婷婷国产精品| 免费看的黄色欧美网站| 中文不卡在线| 欧美啪啪一区| 日本久久综合| 久久婷婷亚洲| 性色av一区二区怡红| 综合一区av| 国产乱码精品一区二区三区亚洲人 | 久久精品凹凸全集| 国产精品www994| 国产精品久久久久久久久妇女| 韩国久久久久久| 在线综合亚洲| 日本欧美在线| 久久久久九九精品影院| 香蕉视频亚洲一级| 在线综合欧美| 国产欧美二区| 日韩欧美精品综合| 国产精品人人爽人人做我的可爱| 日本亚洲不卡| 日本精品黄色| 国产视频一区免费看| 日韩二区三区在线观看| 麻豆精品99| 激情婷婷欧美| 国产探花一区| 99视频精品视频高清免费| 蜜桃久久av| 你懂的网址国产 欧美| 日韩精品欧美| 亚洲视频二区| 久久精品二区亚洲w码| 亚洲福利久久| 欧美亚洲三区| 美女网站视频一区| 亚洲毛片视频| 激情中国色综合| 亚洲一区二区三区高清| 国产亚洲第一伦理第一区| 久久久久国产精品一区三寸| 亚洲视频二区| 国产一区二区三区四区大秀| 亚洲激情中文| 免费在线亚洲| 国产精品日韩久久久| 精品欧美日韩精品| 日韩专区一卡二卡| 福利一区二区| 一区二区国产在线观看| 日韩国产欧美| 青青草国产成人99久久| 久久精品卡一| 国产精品乱战久久久| 亚洲欧美日韩一区在线观看| 精品成人18| 日韩高清在线一区| 99re国产精品| 亚洲一级少妇| 国产精品极品国产中出| 日韩精品一级二级| 久久久精品网| 国产精品第一国产精品| 性欧美长视频| 99久久婷婷| 精品视频自拍| 欧美日韩一区二区三区不卡视频 | 日韩精品视频网站| 美女亚洲一区| 久久久久免费| 国产麻豆一区二区三区| 蜜桃av一区二区三区电影| 成人精品天堂一区二区三区| 国产精品久久久网站| 四虎精品永久免费| 蜜桃视频欧美| 日韩中文在线播放| 国产精品久久久久久久久久白浆| 免费高清在线一区| 亚洲国产综合在线看不卡| 高清一区二区三区| 国产精品一区二区精品 | 一区二区三区国产在线| 欧美大黑bbbbbbbbb在线| 9999国产精品| 麻豆精品少妇| 国产精品视频一区二区三区| 日韩av电影一区| 日韩精品一区二区三区中文| 中文字幕日韩欧美精品高清在线| 亚洲午夜视频| 久久亚洲成人| 999精品色在线播放| 久久影院午夜精品| 福利欧美精品在线| 国产一区二区三区久久久久久久久| 国产亚洲人成a在线v网站| 日本精品久久| 日韩精品免费观看视频| 丝袜脚交一区二区| 中国女人久久久|