Django Admin – 包含模型



当使用startproject 命令初始化新项目时,Django 会自动安装一些应用,这些应用的列表可以在项目设置模块的 INSTALLED_APPS 参数中找到。

# Application definition

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

为了能够登录到管理站点,模型 – 组和用户会自动注册到管理站点。

因此,当我们使用超级用户凭据登录到 URL https://127.0.0.1:8000/admin 上的管理站点时,我们可以在首页上看到组和用户表。

但是,其他应用中声明的模型不会自动注册。您需要在应用包文件夹中的“admin.py”模块中执行此操作。

首先,我们创建一个新的 Django 应用 -

Python manage.py startapp myapp

接下来,我们将其包含在 INSTALLED_APPS 列表中。

# Application definition

INSTALLED_APPS = [
   'django.contrib.admin',
   'django.contrib.auth',
   'django.contrib.contenttypes',
   'django.contrib.sessions',
   'django.contrib.messages',
   'django.contrib.staticfiles',
   'myapp',
]

所有要使用的模型都定义在“models.py”文件中。让我们按如下方式定义员工模型 -

from django.db import models

# Create your models here.
class Employee(models.Model):  
   empno = models.CharField(max_length=20)  
   empname = models.CharField(max_length=100)    
   contact = models.CharField(max_length=15)  
   salary = models.IntegerField()
   joined_date = models.DateField(null=True)
   class Meta:  
      db_table = "employee"

我们必须创建迁移脚本并运行迁移。

python manage.py makemigrations myapp
python manage.py migrate

这现在将创建Employee 模型。我们现在必须将此模型添加到管理界面。为此,打开“admin.py”文件,导入employee 模型,并调用admin.register() 函数。

from django.contrib import admin

# Register your models here.
from .models import Employee

admin.site.register(Employee)

完成这些步骤后,启动 Django 服务器 -

Python manage.py runserver

打开浏览器并访问管理 URL https://127.0.0.1:8000/admin,它现在将在 MYAPP 下显示新注册的模型。

Django Admin Include Models 1

添加新的员工对象,请单击+ 添加按钮 -

Django Admin Include Models 2

单击Employees 模型以展开其集合 -

Django Admin Include Models 3

上面的列表显示“Employee object (1)”,“Employee object (2)” 没有任何详细信息,因为它是对象的默认字符串表示形式。

为了显示更有意义的表示形式,我们可以在employee 模型中添加__str__() 方法。

广告