Django基础篇 04-模型类注册到后台Django Admin中
一、django自带的admin的url地址
urls.py文件中
from django.contrib import admin
from django.urls import path
from user import views urlpatterns = [
path('admin/', admin.site.urls),
path('index',views.index),
path('',views.get_sign_01),
path('category/<int:id>',views.category),
path('detail/<int:article_id>',views.detail)
]
二、创建admin用户
python manage.py createsuperuser
也可以使用pycharm 的自带的 run manage.py task

三、登录django后台管理

四、编写models.py类
from django.db import models # Create your models here. # 模型类:是表
# 模型对象:是数据,所以当返回数据对象的时候,需要在models 类中 添加魔法函数__str__ 避免返回的是类的对象
# 模型对象属性:是每个字段 class BaseModel(models.Model):
create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
update_time = models.DateTimeField(auto_now=True, verbose_name='更新时间') class Meta:
abstract = True # 抽象基类 此模型 不需要创建表 class Category(BaseModel):
name = models.CharField(max_length=50,verbose_name='分类名称',unique=True,null=False) class Meta:
db_table = 'category' # 表名
verbose_name = '文章分类'
verbose_name_plural = verbose_name
ordering = ['-create_time']
#
def __str__(self):
return self.name class Article(BaseModel):
title = models.CharField(max_length=100,verbose_name='文章标题')
content = models.TextField(verbose_name='文章内容') # 长文本内容
read_count = models.IntegerField(default=0,verbose_name='阅读次数')
category = models.ForeignKey(Category,on_delete=models.PROTECT,verbose_name='文章分类') # 外键 """
models.DO_NOTHING 删除父表 不影响子表
models.CASCADE 删除父表 同时删除子表
models.SET_DEFAULT 删除父表 子表相关字段设置默认值
models.SET_NULL 删除父表 子表相关字段设置为空
models.PROTECT 受保护的,父表存在子表,则不能删除父表
models.SET 自定义模式,自己指定
""" class Meta:
db_table = 'article' # 表名
verbose_name = '文章' # web展示的别名
verbose_name_plural = verbose_name
ordering = ['-create_time']
def __str__(self): # 修改类对象的输出内容 默认输出对象属于的类和 此对象的内存地址
return self.title
五、把models的类注册到admin中
admin.py中文件添加注册的models.py的类:
from django.contrib import admin
from . import models
# Register your models here. class CategoryAdmin01(admin.ModelAdmin): # 模型定制化展示
list_display = ['id','name','create_time','update_time']
list_filter = ['name']
search_fields = ['name'] class ArticleAdmin01(admin.ModelAdmin):
list_display = ['id','title','read_count','create_time','update_time']
list_filter = ['title']
search_fields = ['title'] admin.site.register(models.Category,CategoryAdmin01) # 注册模型 并 按照定制化的形式展示
admin.site.register(models.Article) # 注册模型到admin后台
admin.site.site_title = 'SKY' # 修改title
admin.site.site_header = 'SKY后台管理' # 修改header
六、在django后台管理页面中可以查看注册模型表


Django基础篇 04-模型类注册到后台Django Admin中的更多相关文章
- 01: Django基础篇
目录:Django其他篇 01:Django基础篇 02:Django进阶篇 03:Django数据库操作--->Model 04: Form 验证用户数据 & 生成html 05:Mo ...
- Django 基础篇(一)
创建虚拟环境 创建:mkvirtualenv [虚拟环境名称] 删除:rmvirtualenv [虚拟环境名称] 进入:workon [虚拟环境名称] 退出:deactivate 所有的虚拟环境,都位 ...
- iOS系列 基础篇 04 探究视图生命周期
iOS系列 基础篇 04 探究视图生命周期 视图是应用的一个重要的组成部份,功能的实现与其息息相关,而视图控制器控制着视图,其重要性在整个应用中不言而喻. 以视图的四种状态为基础,我们来系统了解一下视 ...
- Django基础之MTV模型
一.Django基础 一.Django简介 Django是一个开放源代码的Web应用框架,由Python写成.采用了MVC的软件设计模式,即模型(Model).视图(View)和控制器(Control ...
- django基础篇
Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM.模型绑定.模板引擎.缓存.Session等诸多功能. ...
- Java多线程系列--“基础篇”04之 synchronized关键字
概要 本章,会对synchronized关键字进行介绍.涉及到的内容包括:1. synchronized原理2. synchronized基本规则3. synchronized方法 和 synchro ...
- Django基础篇之数据库选择及相关操作
在djanjo框架中我们最常用的框架分别就是mysql和sqlit了,下面我们将分别讲述一下这俩种数据库的基础必备知识 mysql 一.利用命令创建(在终端上执行) 1.首先创建一个project项目 ...
- python的django基础篇
一.Django基础 Django 是用Python开发的一个免费开源的Web框架,可以用于快速搭建高性能,优雅的网站! Django的特点: 强大的数据库功能:拥有强大的数据库操作接口(QueryS ...
- python3之Django基础篇
一.Django基础 Django 是用Python开发的一个免费开源的Web框架,可以用于快速搭建高性能,优雅的网站! Django的特点: 强大的数据库功能:拥有强大的数据库操作接口(QueryS ...
- Django基础篇--Models
在Django中创建与数据库的链接并调用数据库的数据是很关键的步骤,那么怎么实现这个过程呢? 下面这篇文章简单梳理了一下创建Model层的过程和应用 模型-Models 首先需要理解什么是模型? 模型 ...
随机推荐
- 用C++写的文件字符数、单词数以及总行数的统计(源码)
#include <stdio.h> #include <fstream> #include <string> using namespace std; //计算单 ...
- Chrome浏览器提示您的连接不是私密连接解决办法
解决方案: 是在当前页面用键盘输入 thisisunsafe ,不是在地址栏输入,就直接敲键盘就行了,页面即会自动刷新进入网页. 原因: 因为Chrome不信任这些自签名ssl证书,为了安全起见,直接 ...
- 树莓派3B 查看GPU、CPU温度
参考:How to find out Raspberry Pi GPU and ARM CPU temperature on Linux GPU温度: /opt/vc/bin/vcgencmd mea ...
- mysql企业常用集群架构
转自 https://blog.csdn.net/kingice1014/article/details/76020061 1.mysql企业常用集群架构 在中小型互联网的企业中.mysql的集群一般 ...
- C2驾驶车型
凡是自动挡的9座(包括9座)以下,车长6米以内的小型载客汽车(包含轿车.SUV.MPV):以及总质量在4500KG(包括4500KG)以下的.车长在6米(包括6米)以下的.核定载重质量在1500KG( ...
- python之路5:常用模块
模块简介 time & datetime模块 random os sys shutil json & pickle shelve xml处理 configparser hashlib ...
- vue 图片转base 64
// 将图片转换为Base64imageUrlToBase64(img) { // 一定要设置为let,不然图片不显示 let image = new Image(); // 解决跨域问题 image ...
- 新建zabbix数据库
1.安装mysqldnf install -y @mysqlsystemctl start mysqld.servicesystemctl enable mysqld.service初始化mysqlm ...
- Docker宿主机agetty进程cpu占用率100% 问题
参考 https://blog.51cto.com/u_15450131/4751959 systemctl stop getty@tty1.service systemctl mask getty ...
- 创建SFTP用户并指定访问目录 Linux
1.创建登录用户及用户组 --可以根据自身磁盘挂载情况制定用户home目录 -d 选项 groupadd test1mkdir -p /data/test1 useradd test1 -g te ...