Django的admin.py注册流程

本文详细解析了Django项目中admin.py的注册过程,以及如何通过admin.py实现数据库模型在Django后台的管理。当在apps.py中注册应用并执行后,Django会自动执行相关函数,注册数据表并生成后台管理的URL。在admin.site.register()方法中,模型类被实例化并添加到路由映射,从而在后台实现对数据表的增删查改操作。
摘要由CSDN通过智能技术生成

通常创建一个Django项目的时候,在Django的配置文件settings.py中,都会有下面的这段配置:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'app01.apps.App01Config',
]

这段配置文件是Django用来注册所创建的应用的.

例如这里在创建Django项目时,添加了一个名为"app01"的应用.

在所创建的项目中,存在着一个名为"apps.py"的文件,这个文件的内容如下:

    from django.apps import AppConfig
    
    class App01Config(AppConfig):
        name = 'app01'

在这个文件中,以所注册的应用名加"Config"定义的类中,其实还有一个方法:

    from django.apps import AppConfig
    
    class App01Config(AppConfig):
        name = 'app01'
        
        def ready(self):
            pass

这个ready是程序在执行路由映射之前执行这个方法.那这个函数有什么用呢??

admin.py文件中,可以注册数据库中数据表,这样方便在Django的后台管理所注册的数据库.

admin.site.register(models.UserInfo)

把models.py中的类注册在这里后,就会生成在后台进行管理这个数据表的四个URL.

/admin/app01/us
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Djangoadmin.py ,如果要在 list_display 显示一个外键的相关字段,可以使用双下划线语法。例如,如果有一个名为 Book 的模型,并且它有一个外键字段 author,你可以这样在 BookAdmin 的 list_display 显示作者的名字: ```python from django.contrib import admin from .models import Book class BookAdmin(admin.ModelAdmin): list_display = ('title', 'author__name') admin.site.register(Book, BookAdmin) ``` 其,'author__name' 表示要显示作者的名字,其的双下划线 '__' 表示要通过外键访问作者模型的 name 字段。需要注意的是,如果外键是多对多关系,则需要使用 'related_name' 来设置反向关联的名称,例如: ```python from django.db import models class Author(models.Model): name = models.CharField(max_length=50) class Book(models.Model): title = models.CharField(max_length=100) authors = models.ManyToManyField(Author, related_name='books') ``` 在 BookAdmin ,可以这样显示作者们的名字: ```python class BookAdmin(admin.ModelAdmin): def authors_name(self, obj): return ', '.join([a.name for a in obj.authors.all()]) authors_name.short_description = 'Authors' list_display = ('title', 'authors_name') ``` 其,'authors_name' 是一个自定义的方法,用来返回作者们的名字,然后在 list_display 显示。需要注意的是,自定义的方法需要设置一个短描述 'short_description',用来在列表头部显示。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值