djangoadmin怎么使用[Django框架]
Django自带的后台管理是Django明显特色之一,可以让我们快速便捷管理数据。后台管理可以在各个app的admin.py文件中进行控制。以下是我最近摸索总结出比较实用的配置。
应用注册
若要把app应用显示在后台管理中,需要在admin.py中注册。这个注册有两种方式,我比较喜欢用装饰器的方式。
先看看普通注册方法。打开admin.py文件,如下代码:
from django.contrib import adminfrom blog.models import Blog
#Blog模型的管理器
class BlogAdmin(admin.ModelAdmin):
list_display=('id', 'caption', 'author', 'publish_time')
#在admin中注册绑定
admin.site.register(Blog, BlogAdmin)
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
eg:
models.py
from django.db import models# Create your models here.class Author(models.Model):nid = models.AutoField(primary_key=True)
name=models.CharField( max_length=32)
age=models.IntegerField() # 与AuthorDetail建立一对一的关系
authorDetail=models.OneToOneField(to="AuthorDetail",on_delete=models.CASCADE) def __str__(self):
return self.nameclass AuthorDetail(models.Model):
nid = models.AutoField(primary_key=True)
birthday=models.DateField()
telephone=models.BigIntegerField()
addr=models.CharField( max_length=64) def __str__(self):
return str(self.telephone)class Publish(models.Model):
nid = models.AutoField(primary_key=True)
name=models.CharField( max_length=32)
city=models.CharField( max_length=32)
email=models.EmailField() def __str__(self):
return self.nameclass Book(models.Model):
nid = models.AutoField(primary_key=True)
title = models.CharField( max_length=32)
publishDate=models.DateField()
price=models.DecimalField(max_digits=5,decimal_places=2)
publish=models.ForeignKey(to="Publish",to_field="nid",on_delete=models.CASCADE)
authors=models.ManyToManyField(to='Author',) def __str__(self):
return self.title
admin.py
from app01.models import Bookfrom app01.models import Publish
from app01.models import Author
from app01.models import AuthorDetail
admin.site.register(Book)
admin.site.register(Publish)
admin.site.register(Author)
admin.site.register(AuthorDetail)
admin定制
在 admin.py 中只需要将 Mode 中的某个类注册,即可在Admin中实现增删改查的功能,如:
admin.site.register(Book)
但是,这种方式比较简单,如果想要进行更多的定制操作,需要利用ModelAdmin进行操作,如:
# 方式一:class BookConfig(admin.ModelAdmin):
list_display = ["title","price","publishDate"]
admin.site.register(Book,BookConfig) # 第一个参数可以是元祖
# 方式二:
@admin.register(Book,BookConfig) # 第一个参数可以是元祖
class BookConfig(admin.ModelAdmin):
list_display = ["title","price","publishDate"]
以上是 djangoadmin怎么使用[Django框架] 的全部内容, 来源链接: utcz.com/z/539798.html