一、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中的更多相关文章

  1. 01: Django基础篇

    目录:Django其他篇 01:Django基础篇 02:Django进阶篇 03:Django数据库操作--->Model 04: Form 验证用户数据 & 生成html 05:Mo ...

  2. Django 基础篇(一)

    创建虚拟环境 创建:mkvirtualenv [虚拟环境名称] 删除:rmvirtualenv [虚拟环境名称] 进入:workon [虚拟环境名称] 退出:deactivate 所有的虚拟环境,都位 ...

  3. iOS系列 基础篇 04 探究视图生命周期

    iOS系列 基础篇 04 探究视图生命周期 视图是应用的一个重要的组成部份,功能的实现与其息息相关,而视图控制器控制着视图,其重要性在整个应用中不言而喻. 以视图的四种状态为基础,我们来系统了解一下视 ...

  4. Django基础之MTV模型

    一.Django基础 一.Django简介 Django是一个开放源代码的Web应用框架,由Python写成.采用了MVC的软件设计模式,即模型(Model).视图(View)和控制器(Control ...

  5. django基础篇

    Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM.模型绑定.模板引擎.缓存.Session等诸多功能. ...

  6. Java多线程系列--“基础篇”04之 synchronized关键字

    概要 本章,会对synchronized关键字进行介绍.涉及到的内容包括:1. synchronized原理2. synchronized基本规则3. synchronized方法 和 synchro ...

  7. Django基础篇之数据库选择及相关操作

    在djanjo框架中我们最常用的框架分别就是mysql和sqlit了,下面我们将分别讲述一下这俩种数据库的基础必备知识 mysql 一.利用命令创建(在终端上执行) 1.首先创建一个project项目 ...

  8. python的django基础篇

    一.Django基础 Django 是用Python开发的一个免费开源的Web框架,可以用于快速搭建高性能,优雅的网站! Django的特点: 强大的数据库功能:拥有强大的数据库操作接口(QueryS ...

  9. python3之Django基础篇

    一.Django基础 Django 是用Python开发的一个免费开源的Web框架,可以用于快速搭建高性能,优雅的网站! Django的特点: 强大的数据库功能:拥有强大的数据库操作接口(QueryS ...

  10. Django基础篇--Models

    在Django中创建与数据库的链接并调用数据库的数据是很关键的步骤,那么怎么实现这个过程呢? 下面这篇文章简单梳理了一下创建Model层的过程和应用 模型-Models 首先需要理解什么是模型? 模型 ...

随机推荐

  1. 【ubuntu20】设置静态IP

    sudo gedit /etc/netplan/01-network-manager-all.yaml 修改文件为: # Let NetworkManager manage all devices o ...

  2. (0709) Linux-命令(scp,tar) zip

    (1) scp .bashrc root@192.168.1.6:vnc://cfy-hp-notebook-pc.local (2) tar -czvf a.tar.gz b            ...

  3. 12-K8S之调度器、预选策略和优选函数

    目录 调度器.预选策略和优选函数 1.nodeSelector nodeName调度: 2.节点亲和性调度(pod亲和于node节点) 3.pod亲和度调度(pod亲和于pod) 4.pod反亲和性度 ...

  4. Java Swing 禁止黏贴动作

    碰到一个需求,不让复制黏贴. 可考的方法有:1 重写JTextField paste 函数    2 删除组件ActionMap中与CTRL + V按键相关的操作 因为JTextField 已经被封装 ...

  5. 学习-Vue3-条件渲染

    v-if支持在 <template> 元素上使用,能和 v-else 搭配使用. v-show 不支持在 <template> 元素上使用, 也不能和 v-else 搭配使用. ...

  6. Windows 10 与Windows11 功能比较(红字为不同点)

    Windows 10 与Windows11 功能比较(红字为不同点)

  7. JS中函数的length以及arguments的length如何得到?

    function a(x,y){} a.length // 2 function b(x,y=2,z){} b.length // 1 function c(x,...args){} c.length ...

  8. 滚动 Scroller OverScroller

    原文:https://www.baidu.com/link?url=26iKhqGV7w87fqTiCTCwQc3VPcCbedUpAlddWm3uHsEXAGaeH47xY8QCZNGcORGBAU ...

  9. eccodes 使用girb_filter工具

    参考自ECMWF网站https://confluence.ecmwf.int/display/OPTR/ecCodes%3A+GRIB+and+BUFR+data+decoding+and+encod ...

  10. (K8s学习笔记三)创建Namespace

    Namespace(命名空间)很多情况下用于实现多租户的资源隔离.Namespace通过将集群内部的资源对象"分配"到不同的Namespace中,形成逻辑上分为不同项目.小组或用户 ...