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://: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://: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__() 方法。

廣告