当前位置: 首页 > news >正文

1、Django Admin学习模型

此专栏应用环境和模型基于此文

开发环境

系统:windows11

开发工具:vscode

开发语言:python 3.8

开发框架:django 3.2

数据库:mysql8.4.1

项目目录

settings

注册两个应用

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

Entities应用

models

from django.db import modelsclass Category(models.Model):name = models.CharField(max_length=100)class Meta:verbose_name_plural = "Categories"def __str__(self):return self.nameclass Origin(models.Model):name = models.CharField(max_length=100)def __str__(self):return self.nameclass Entity(models.Model):GENDER_MALE = "Male"GENDER_FEMALE = "Female"GENDER_OTHERS = "Others/Unknown"name = models.CharField(max_length=100)alternative_name = models.CharField(max_length=100, null=True, blank=True)category = models.ForeignKey(Category, on_delete=models.CASCADE, verbose_name='类别')origin = models.ForeignKey(Origin, on_delete=models.CASCADE)gender = models.CharField(max_length=100,choices=((GENDER_MALE, GENDER_MALE),(GENDER_FEMALE, GENDER_FEMALE),(GENDER_OTHERS, GENDER_OTHERS),))description = models.TextField()def __str__(self):return self.nameclass Meta:abstract = Trueclass Hero(Entity):class Meta:verbose_name_plural = "Heroes"is_immortal = models.BooleanField(default=True)benevolence_factor = models.PositiveSmallIntegerField(help_text="How benevolent this hero is?")arbitrariness_factor = models.PositiveSmallIntegerField(help_text="How arbitrary this hero is?")# relationshipsfather = models.ForeignKey("self", related_name="+", null=True, blank=True, on_delete=models.SET_NULL)mother = models.ForeignKey("self", related_name="+", null=True, blank=True, on_delete=models.SET_NULL)spouse = models.ForeignKey("self", related_name="+", null=True, blank=True, on_delete=models.SET_NULL)class Villain(Entity):is_immortal = models.BooleanField(default=False)malevolence_factor = models.PositiveSmallIntegerField(help_text="How malevolent this villain is?")power_factor = models.PositiveSmallIntegerField(help_text="How powerful this villain is?")is_unique = models.BooleanField(default=True)count = models.PositiveSmallIntegerField(default=1)

admin

from django.contrib import admin  
from .models import Category, Origin, Hero, Villain  admin.site.register(Category)  
admin.site.register(Origin)  
admin.site.register(Hero)  
admin.site.register(Villain)

Events应用

models

from django.db import models
from Entities.models import Hero, Villainclass Epic(models.Model):name = models.CharField(max_length=255)participating_heroes = models.ManyToManyField(Hero)participating_villains = models.ManyToManyField(Villain)class Event(models.Model):epic = models.ForeignKey(Epic, on_delete=models.CASCADE)details = models.TextField()years_ago = models.PositiveIntegerField()class EventHero(models.Model):event = models.ForeignKey(Event, on_delete=models.CASCADE)hero = models.ForeignKey(Hero, on_delete=models.CASCADE)is_primary = models.BooleanField()class EventVillain(models.Model):event = models.ForeignKey(Event, on_delete=models.CASCADE)hero = models.ForeignKey(Villain, on_delete=models.CASCADE)is_primary = models.BooleanField()

admin

from django.contrib import admin  
from .models import Epic, Event, EventHero, EventVillain  admin.site.register(Epic)  
admin.site.register(Event)  
admin.site.register(EventHero)  
admin.site.register(EventVillain)

呈现:

此之前,需设置settings时区,语言,创建管理员

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • yolov8目标检测pyside6可视化图形界面+检测源码ui文件——用于计数统计
  • Elasticsearch:使用 LTR 进行个性化搜索
  • Redis String 类型详解:操作命令、底层编码与使用案例
  • 当采用 JSON 格式的数据进行响应时,对象是否需要序列化取决于什么?
  • 【赵渝强老师】MongoDB的WiredTiger存储引擎
  • 苹果系统(MacOS)资源管理器和终端的来回切换
  • Centos7通过reposync搭建本地Yum源
  • 非局部均值降噪算法(NLM)原理及实现
  • 冒泡排序;选择排序;插入排序;快排;判断大小端;位运算
  • 【C++算法】分治(快排 归并)
  • 中国各城市、各区县、各省份-PM2.5相关数据(1998-2021年)
  • 零基础5分钟上手亚马逊云科技 - AI模型内容安全过滤
  • Flink 配置文件的深度解读
  • 评价决策类——层次分析法+数学建模+实战分析
  • Ascend C算子开发(入门)—— 算子开发初体验
  • 2017-09-12 前端日报
  • CentOS 7 防火墙操作
  • CSS盒模型深入
  • CSS实用技巧
  • Docker入门(二) - Dockerfile
  • Docker下部署自己的LNMP工作环境
  • happypack两次报错的问题
  • iOS 系统授权开发
  • Linux gpio口使用方法
  • Linux各目录及每个目录的详细介绍
  • Netty+SpringBoot+FastDFS+Html5实现聊天App(六)
  • node入门
  • Objective-C 中关联引用的概念
  • Python打包系统简单入门
  • Transformer-XL: Unleashing the Potential of Attention Models
  • vue总结
  • 从地狱到天堂,Node 回调向 async/await 转变
  • 分享几个不错的工具
  • 欢迎参加第二届中国游戏开发者大会
  • 基于Dubbo+ZooKeeper的分布式服务的实现
  • 深入浏览器事件循环的本质
  • 小程序滚动组件,左边导航栏与右边内容联动效果实现
  • 用mpvue开发微信小程序
  • 用Visual Studio开发以太坊智能合约
  • 在weex里面使用chart图表
  • k8s使用glusterfs实现动态持久化存储
  • ​LeetCode解法汇总2670. 找出不同元素数目差数组
  • ​VRRP 虚拟路由冗余协议(华为)
  • # 深度解析 Socket 与 WebSocket:原理、区别与应用
  • #### go map 底层结构 ####
  • #if和#ifdef区别
  • (ISPRS,2021)具有遥感知识图谱的鲁棒深度对齐网络用于零样本和广义零样本遥感图像场景分类
  • (翻译)Entity Framework技巧系列之七 - Tip 26 – 28
  • (附源码)ssm基于jsp高校选课系统 毕业设计 291627
  • (附源码)ssm教师工作量核算统计系统 毕业设计 162307
  • (一)u-boot-nand.bin的下载
  • .NET Core实战项目之CMS 第十二章 开发篇-Dapper封装CURD及仓储代码生成器实现
  • .net php 通信,flash与asp/php/asp.net通信的方法
  • .net 提取注释生成API文档 帮助文档
  • [ CTF ] WriteUp- 2022年第三届“网鼎杯”网络安全大赛(朱雀组)