视频链接:定制模型和修改后台_杨士航
# 创建表单
# models 可提供多种字段
# 定义博客类型类,继承Model基类
from django.db import models
from django.contrib.auth.models import User
class BlogType(models.Model):
# 博客类型 models.CharField 较短的单行文本,并限制了该字段的最大长度
type_name = models.CharField(max_length = 20)
# 博客类型返回到http://localhost:8000/admin/页面显示
def __str__(self):
return self.type_name
class Blog(models.Model):
title = models.CharField(max_length = 150)
# 外键 models.ForeignKey 参考另一个表的主键数据 下拉框可选择
blog_type = models.ForeignKey(BlogType, on_delete = models.DO_NOTHING)
# 博客正文 models.TextField 较长的文本
content = models.TextField()
# 创建时间 models.DateTimeField
created_time = models.DateTimeField(auto_now_add = True)
last_updated_time = models.DateTimeField(auto_now = True)
author = models.ForeignKey(User, on_delete = models.DO_NOTHING)
def __str__(self):
return " % self.title
# 关联应用和django
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
# 新添加的app
"learning_blog"
]
# 英文en-us 中文zh-hans
LANGUAGE_CODE = 'zh-hans'
from django.contrib import admin
# 从同文件夹中model.py引入Blog,BlogType类
from .models import BlogType, Blog
# 注册类
# 即建立管理类和模块数据简单的联系,方便可视化
@admin.register(BlogType)
# 定义BlogTypeAdmin管理类,继承admin.ModelAdmin基管理类
class BlogTypeAdmin(admin.ModelAdmin):
# 显示博客id和名称,在http://localhost:8000/admin/learning_blog/blogtype/
list_display = ("id", "type_name")
@admin.register(Blog)
class BlogAdmin(admin.ModelAdmin):
# 显示各信息,在http://localhost:8000/admin/learning_blog/blog/
list_display = ("title", "blog_type", "author", "created_time", "last_updated_time")
BlogType表单:http://localhost:8000/admin/learning_blog/blogtype/add
Blog表单:http://localhost:8000/admin/learning_blog/blog/add/
http://localhost:8000/admin/learning_blog/blogtype/
http://localhost:8000/admin/learning_blog/blog/
返回操作名称在http://localhost:8000/admin/,右侧recent actions
一键保存应用好的安装包信息,方便其他项目配置使用。