Django 简明教程

Django Admin – Include Models

当使用 startproject command 初始化新项目时,Django 会自动安装一些应用程序,这些应用程序的列表可以在项目的 settings module 的 INSTALLED_APPS 参数中找到。

# Application definition

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

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

因此,当我们使用 superuser 凭证通过 URL http://localhost:8000/admin 登录到管理站点时,我们在主页上看到组和用户表格。

但是,在其他应用程序中声明的模型不会自动注册。您需要在应用程序 package folder 中存在的 “ 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"

我们必须创建 migration script 并运行迁移。

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 http://localhost:8000/admin ,该 URL 现在将在 MYAPP 下显示新注册的模型。

django include models 1

add new employee objects ,请单击 + Add button

django include models 2

单击 Employees 模型以扩展其集合 −

django include models 3

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

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