目录
Django 的内置管理后台是一个强大的工具,允许你以图形化界面管理数据。
注册模型是什么
注册模型 的意思是将你的应用中的模型(即数据库表)与 Django 的内置管理后台关联起来,以便通过图形化界面的 Django admin 对这些模型的数据进行管理。
具体来说,当你将模型在 admin.py
文件中注册之后,Django admin 界面就会显示该模型对应的数据库表。通过 Django admin,管理员可以对模型的数据进行操作,例如查看、添加、编辑、删除数据记录,而不需要直接操作数据库。
详细解释:
-
模型(Model):在 Django 中,模型对应于数据库中的表。模型定义了表的结构(列)和一些业务逻辑。
-
注册模型到 admin:在
admin.py
文件中注册模型的目的是告诉 Django admin 界面,它应该显示这些模型并允许管理员操作与之相关的数据。
要在你的 myapp
应用中启用管理后台,你需要按照以下步骤进行配置:
1. 确保应用被注册到 INSTALLED_APPS
首先,确保你的 myapp
应用已经在 settings.py
文件的 INSTALLED_APPS
中注册。例如:
INSTALLED_APPS = [
...
'django.contrib.admin', # 确保 Django 的 admin 应用被启用
'myapp', # 确保你的应用被注册
...
]
2. 创建超级用户
要访问管理后台,你需要创建一个超级用户。运行以下命令创建:
python manage.py createsuperuser
按照提示输入用户名、电子邮件和密码。创建超级用户后,你可以使用这些凭据登录管理后台。
3. 注册你的模型到管理后台
假设你的 myapp
应用中有一个模型 User
,对应的数据库表是 myapp_user
。如果你希望通过 Django admin 管理这张表中的数据,你需要在 myapp/admin.py
中注册这个模型。
模型定义 (models.py
):
from django.db import models
class User(models.Model):
user = models.CharField(max_length=30,verbose_name="用户名") #用户名
name = models.CharField(max_length=30,verbose_name="姓名") #姓名
sex = models.CharField(max_length=10,verbose_name="性别") #性别
age = models.IntegerField(verbose_name="年龄") #年龄
label = models.CharField(max_length=100,verbose_name="标签") #标签
create_time = models.DateTimeField(auto_now_add=True,null=True, blank=True,verbose_name="创建时间")
update_time = models.DateTimeField(auto_now=True,null=True, blank=True,verbose_name="更新时间")
class Meta:
app_label = 'myapp' #指定所属应用
db_table = 'myapp_user' #指定数据表名称
verbose_name = "用户表" #指定页面显示应用名称
verbose_name_plural = "用户表" #指定页面显示应用名称,全量指定
ordering = ['user'] #指定排序字段
#定义一个返回的名称,默认返回self
def __str__(self):
return self.name
在 admin.py
中注册模型:
from django.contrib import admin
# Register your models here.
from myapp.models import User
admin.site.register(User)
通过这种方式,MyModel
就会出现在 Django admin 后台中,你可以通过 /admin/
页面来对该模型的数据进行增删改查。
4. 启动 Django 开发服务器
启动 Django 开发服务器以访问管理后台:
python manage.py runserver
5. 访问管理后台
在浏览器中,访问以下 URL 进入 Django 的管理后台:
http://127.0.0.1:8000/admin/
使用你在 createsuperuser
时创建的超级用户凭据登录后台。
注册多个模型的方法:
你可以按如下方式在 admin.py
中注册多个模型:
假设你的模型文件 (models.py
) 中有多个模型:
from django.db import models
class ModelA(models.Model):
name = models.CharField(max_length=100)
class ModelB(models.Model):
title = models.CharField(max_length=200)
class ModelC(models.Model):
description = models.TextField()
在 admin.py
中注册多个模型:
from django.contrib import admin
from myapp.models import User , IdCard , Project
# 注册多个模型到 admin
admin.site.register(User)
admin.site.register(IdCard)
admin.site.register(Project)
这样,ModelA
、ModelB
和 ModelC
都会在 Django 管理后台中显示出来,允许你对它们的数据进行增删改查。
使用装饰器进行注册:
除了使用 admin.site.register()
方法,你还可以通过装饰器来简化注册过程:
from django.contrib import admin
# Register your models here.
from myapp.models import User , IdCard , Project
@admin.register(User)
class User(admin.ModelAdmin):
pass
@admin.register(IdCard)
class IdCard(admin.ModelAdmin):
pass
@admin.register(Project)
class Project(admin.ModelAdmin):
pass
# admin.site.register(User)
# admin.site.register(IdCard)
# admin.site.register(Project)
总结
要在 myapp
中启用 Django 的管理后台,你需要确保以下几点:
- 在
INSTALLED_APPS
中注册myapp
和django.contrib.admin
。 - 创建超级用户。
- 在
admin.py
文件中注册你想在后台管理的模型。 - 启动服务器并访问
/admin/
。 - 配置注册多模型