1、Django Admin学习模型

news2024/11/28 13:30:53

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

开发环境

系统: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 models


class Category(models.Model):
    name = models.CharField(max_length=100)
    class Meta:
        verbose_name_plural = "Categories"
    def __str__(self):
        return self.name

class Origin(models.Model):
    name = models.CharField(max_length=100)
    def __str__(self):
        return self.name

class 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.name
    class Meta:
        abstract = True

class 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?"
    )
    # relationships
    father = 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, Villain


class 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时区,语言,创建管理员

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2099662.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

免下载看视频,使用极空间部署P2P磁力种子流媒体服务器『TorrServer』

免下载看视频,使用极空间部署P2P磁力种子流媒体服务器『TorrServer』 哈喽小伙伴们好,我是Stark-C~ 说到在NAS上的观影体验,很多小伙伴的理解可能就是先下载到本地,然后在使用播放器打开观看。今天为大家分享另外一种观影方式&a…

JS设计模式之“语言之魂” - 原型模式

前言 当我们学习JavaScript的时候,经常会听到原型(prototype)、原型链(prototype chain)和原型模式(prototype pattern)这些概念,它们之间有什么关联呢?怎么样才能使用好原型模式呢…

linux 硬件 arm架构

一.ARM: 1.时钟晶振: 在单片机系统里晶振的作用非常大,他结合单片机内部的电路,产生单片机所必须的时钟频率,单片机的一切指令的执行都是建立在这个基础上的,晶振的提供的时钟频率越高,那单片机…

Valley14.2免授权php跨境电商在线商城

6Valley 14.2 Nulled – 多供应商电子商务 – 完整的电子商务移动应用程序、Web、卖家和管理面板 后台可自定义收款,和翻译多国语言,中文需要自己对比翻译!一般用不到中文。毕竟是跨境电商平台 带商家即时通讯,全套带文档和APP双端…

DReg-NeRF: Deep Registration for Neural Radiance Fields论文解读

目录 一、导言 二、NeRF2NeRF 三、相关工作 1、神经辐射场 2、点云配准 3、NeRF配准 四、DReg-NeRF 1、NeRF神经辐射场查询 2、特征提取 3、transformer 4、Decoder 五、损失函数 一、导言 该论文来自于ICCV2023,主要提到一种DReg-NeRF的配准方法&#…

SQL 数据查询

文章目录 3.4.1 单表查询定义特点单表无条件查询单表带条件查询对查询结果进行排序限制查询结果数量 3.4.2 分组查询定义特点:聚集函数GROUP BY短语HAVING子句分组查询小结 3.4.3 连接查询定义特点:等值连接与非等值连接查询自然连接(内连接&…

全局安装react

1、首先安装react脚手架 npm install -g create-react-app2、创建react项目 create-react-app my-app3、 PS D:\桌面\papers\subject> create-react-app my-react-appCreating a new React app in D:\桌面\papers\subject\my-react-app.Installing packages. This might …

基于vue框架的超市订单管理系统16uob(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。

系统程序文件列表 项目功能:员工,商品分类,商品信息,供货商,入库订单,销售订单,货架信息,盈利信息 开题报告内容 基于Vue框架的超市订单管理系统开题报告 一、研究背景与意义 随着信息技术的飞速发展和电子商务的普及,传统超市管理模式正面临前所未有…

wsl2 安装qt5

sudo apt-get install qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools qtcreator -ysudo apt-get install build-essential libfontconfig1 mesa-common-dev -y "qt5-default"从Ubuntu 21.04 存储库中就缺少了该软件包,后续会不会添加暂时未知。 在…

SpringBoot日志使用:Slf4j与Logback

步骤一&#xff1a;引入lombok即可&#xff0c;lombok自带Slf4j注解&#xff08;网上说不用引入api的依赖&#xff0c;若报错可添加&#xff09; <dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version&…

数据访问:JPA

文章目录 JPA的由来JPA是什么Spring Data JPA快速上手 JPA的由来 ORM框架能够将Java对象映射到关系型数据库中&#xff0c;能够直接持久化复杂的 Java对象。ORM框架的出现&#xff0c;可以让开发者从数据库编程中解脱出来&#xff0c;把更多的精力放在业务模型与业务逻辑上。目…

Open3D 计算投影的点云的尺寸

目录 一、概述 1.1实现步骤 1.2应用场景 二、代码实现 三、实现效果 3.1原始点云 3.2投影后点云 Open3D点云算法汇总及实战案例汇总的目录地址&#xff1a; Open3D点云算法与点云深度学习案例汇总&#xff08;长期更新&#xff09;-CSDN博客 一、概述 在 Open3D 中&…

electron-vite打包出错

问题&#xff1a;1 electron-vite 安装&#xff0c; 打包下载资源失败&#xff0c;设置国内镜像 由于electron默认打包会从github上下载相关二进制包&#xff0c;众所周知&#xff0c;国内GitHub访问是相当慢的&#xff0c;所以经常会出现下载失败导致打包不成功&#xff0c;…

中兴-ZSRV2路由器-任意文件读取

中兴-ZSRV2路由器-任意文件读取 文章目录 中兴-ZSRV2路由器-任意文件读取免责声明漏洞描述搜索语法漏洞复现修复建议 免责声明 文章中涉及的程序(方法)可能带有攻击性&#xff0c;仅供安全研究与教学之用&#xff0c;读者将其信息做其他用途&#xff0c;由用户承担全部法律及连…

upload-labs闯关攻略

pass-1 提前准备好的一个PHP木马&#xff0c;然后将后缀名改为jpg上传 然后在上传的过程中利用抓包&#xff0c;将抓取到的包里面的后缀jpg改为php如图所示&#xff0c;然后放行 接着我们去访问上传的图片信息&#xff0c;如下图所示就为成功 pass-2 提前准备好的一个PHP木马…

线程池相关知识点

线程池是什么相信大家都是知道的&#xff0c;所以这里就不做解释了&#xff0c;直接看相关知识点吧。 初始化线程池方法 继承ThreadPool 实现Runnable 实现Callable 接口 FutureTask &#xff08;可以拿到返回结果&#xff0c;可以处理异常&#xff09; 核心参数 corePoo…

[米联客-XILINX-H3_CZ08_7100] FPGA程序设计基础实验连载-23 VTC视频时序控制器设计

软件版本&#xff1a;VIVADO2021.1 操作系统&#xff1a;WIN10 64bit 硬件平台&#xff1a;适用 XILINX A7/K7/Z7/ZU/KU 系列 FPGA 实验平台&#xff1a;米联客-MLK-H3-CZ08-7100开发板 板卡获取平台&#xff1a;https://milianke.tmall.com/ 登录“米联客”FPGA社区 http…

Javascript LeeCode选题(汉诺塔求解)

LeeCode选题 汉诺塔递归求解move移动函数hanoi函数main方法测试代码&#xff1a;代码实现 汉诺塔递归求解 汉诺塔介绍&#xff1a; 汉诺塔的的图形&#xff08;从上到下1&#xff0c;2&#xff0c;3个&#xff09;实现&#xff1a; 这里我们可以看到因为必须要将第n个移动到…

数据结构与算法 第7天(树和森林)

树 树的存储结构 双亲表示法 找双亲容易&#xff0c;找孩子不容易 孩子链表法 把每个结点的孩子节点排列起来&#xff0c;看成一个线性表&#xff0c;用单链表存 找孩子容易&#xff0c;找双亲难 带双亲孩子链表法 给孩子链表加一个参数&#xff0c;存双亲的下标 孩子兄…

系统思考—盲点

突‮盲破‬点&#xff0c;解‮合锁‬作潜能——JSTO 的‮能高‬碰撞&#xff01; 在今天的JSTO会议中&#xff0c;我们在Check In环‮分节‬享了近1-2周‮实的‬践和反思。这‮环个‬节不仅‮助帮‬大家‮享共‬了更多的‮息信‬和资源&#xff0c;还‮效有‬促进了彼‮间此‬…