• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

django-admin怎么使用

python 搞java代码 3年前 (2022-05-24) 28次浏览 已收录 0个评论

Django自带的后台管理是Django明显特色之一,可以让我们快速便捷管理数据。后台管理可以在各个app的admin.py文件中进行控制。以下是我最近摸索总结出比较实用的配置。

应用注册

若要把app应用显示在后台管理中,需要在admin.py中注册。这个注册有两种方式,我比较喜欢用装饰器的方式。

先看看普通注册方法。打开admin.py文件,如下代码:

from <a href="https://www.gaodaima.com/tag/django" title="查看更多关于django的文章" target="_blank">django</a>.contrib import admin
from blog.models import Blog
  
#Blog模型的管理器
class BlogAdmin(admin.ModelAdmin):
    list_display=('id', 'caption', 'author', 'publish_time')
     
#在admin中注册绑定
admin.site.register(Blog, BlogAdmin)

www#gaodaima.com来源gao!%daima.com搞$代*!码网搞代码

admin组件使用

Django 提供了基于 web 的管理工具.

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

# Application definition

INSTALLED_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 admin

urlpatterns = [
    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 Book
from 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"]

来源:搞代码网:原文地址:https://www.gaodaima.com


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:django-admin怎么使用

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址