Django admin管理


admin的配置

admin是django強大功能之一,它能共從數據庫中讀取數據,呈現在頁面中,進行管理。默認情況下,它的功能已經非常強大,如果你不需要復雜的功能,它已經夠用,但是有時候,一些特殊的功能還需要定制,比如搜索功能,下面這一系列文章就逐步深入介紹如何定制適合自己的admin應用。

如果你覺得英文界面不好用,可以在setting.py 文件中修改以下選項

1
LANGUAGE_CODE  =  'en-us'   #LANGUAGE_CODE = 'zh-hans'

一  認識ModelAdmin

   管理界面的定制類,如需擴展特定的model界面需從該類繼承。

二 注冊medel類到admin的兩種方式:

     <1>   使用register的方法

1
admin.site.register(Book,MyAdmin)

     <2>   使用register的裝飾器

1
@admin .register(Book)

三 掌握一些常用的設置技巧

  •     list_display:     指定要顯示的字段
  •     search_fields:  指定搜索的字段
  •     list_filter:        指定列表過濾器
  •     ordering:       指定排序字段

 

配置示例:

1、在mysql數據庫中,創建庫

mysql> create database Django_admin character set utf8;
Query OK, 1 row affected (0.01 sec)

mysql> use django_admin
Database changed

2、配置連接數據庫

settings.py

DATABASES = {

    'default': {

        'ENGINE': 'django.db.backends.mysql',

        'NAME': 'django_admin',

        'USER': 'root',

        'PASSWORD': 'oldboy123',

        'HOST': '',

        'PORT': '3306',

    }

}

3、寫建表語句

models.py

from django.db import models

# Create your models here.

# Create your models here.


class Book(models.Model):
    name=models.CharField(max_length=20)
    price=models.IntegerField()
    pub_date=models.DateField()
    publish=models.ForeignKey("Publish")
    authors=models.ManyToManyField("Author")

    def __str__(self):
        return self.name

class Publish(models.Model):

    name=models.CharField(max_length=32)
    city=models.CharField(max_length=32)

    def __str__(self):
        return self.name


#class Book_Author(models.Model):
#    book=models.ForeignKey("Book")
#    author=models.ForeignKey("Author")


class Author(models.Model):

    name=models.CharField(max_length=32)
    age=models.IntegerField(default=20)

    def __str__(self):
        return self.name

在windows終端執行:

在終端執行命令

創建表

python manage.py makemigrations

寫入數據庫

python manage.py migrate

4、配置連接數據庫

 

5、激活管理工具

在urls.py中配置路由分發:

from django.conf.urls import url
from django.contrib import admin

urlpatterns = [
    url(r'^admin/', admin.site.urls),
]

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

 

6、使用管理工具

通過下面地址,就可以訪問admin管理頁面。要進入管理界面,我們要先創建超級管理員賬號。

http://127.0.0.1:8000/admin

 

 

創建超級用戶和密碼

D:\python\django_admin>python manage.py createsuperuser
Username (leave blank to use 'administrator'): nulige
Email address: nulige@qq.com
Password:
Password (again):
Superuser created successfully.

添加普通用戶

激活普通用戶和授權,參考下圖:

勾選相關選項,再點保存。

 

7、在admin中訂制各種后面管理頁面功能。

示例1:admin.py

from django.contrib import admin


from app01 import models
# Register your models here.

class BookAdmin(admin.ModelAdmin):
    list_display = ('id','name','price','pub_date')
    list_editable = ('name','price')
    filter_horizontal = ('authors',)
    list_per_page = 2
    search_fields = ('id','name','publish__name')
    list_filter = ('pub_date', 'publish')

admin.site.register(models.Author)
admin.site.register(models.Book,BookAdmin)
admin.site.register(models.Publish)

 示例2:admin.py

from django.contrib import admin


from app01 import models
# Register your models here.


class BookAdmin(admin.ModelAdmin):
    list_display = ('id','name','price','pub_date')
    # list_per_page = 3
    ordering = ("-price","id")
    # fieldsets = [
    #     (None, {'fields': ['name']}),
    #     ('price information', {'fields': ['price', "publish"], 'classes': ['collapse']}),
    # ]
    #filter_vertical =


admin.site.register(models.Author)
admin.site.register(models.Book,BookAdmin)
admin.site.register(models.Publish)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM