Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如果第一个模型与Django中另一个模型的四个实例相连接,如何编写关系?

如果第一个模型与Django中另一个模型的四个实例相连接,如何编写关系?
EN

Stack Overflow用户
提问于 2022-11-12 06:03:48
回答 1查看 39关注 0票数 0

假设我有两个非常基本的模型类--为了简单起见,让我们给它们命名为一个计划和一个任务。我的目标是强迫每个计划都有四个不同的任务(顺序并不重要)。对于这种“多到多、有固定数量的相关实例”的情况,有什么好的做法吗?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from django.db import models


class Task(models.Model):
    name = models.CharField(max_length=20)


class Plan(models.Model):
    name = models.CharField(max_length=20)
    # four_tasks = ?

我搜索了Django文档,但那里没有答案(或者我不知道如何搜索)。我想到了计划中的4个单独的外键(通过为这些外键设置related_name ),或者标准的多到多的关系。这两种解决方案都需要额外的检查,以确保实际上有4种不同的任务,它们在我看来很难看。

EN

回答 1

Stack Overflow用户

发布于 2022-11-12 06:35:15

在我看来,从数据库的角度来看,最佳实践是将4个单独的外键(如您所认为的)作为主键(复合键)。

这可以在Django中使用uniqueConstraint来实现,这是比在一起选项更好的方法:

UniqueConstraint提供了比unique_together更多的功能。unique_together在将来可能会被废弃。

编辑:如果您想知道如何使用它,下面是一个回答

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74413583

复制
相关文章
django 模型关系
比如汽车和制造商的例子,一辆汽车只能属于一个制造商,但是一个制造商有多辆汽车,这个关系,用Django的Model来表示,就是
程序员同行者
2018/08/16
1.4K0
Django基础篇-模型表关系
在 Mysql 中一对多是通过外键实现的,在 django 模型中通过 ForeignKeyField 类型实现。
小团子
2019/07/18
8720
Django基础篇-模型表关系
python-Django-Django 模型层的关联关系(二)
在上面的代码中,我们首先获取一个Person实例,然后通过它的address属性获取关联的Address实例。
玖叁叁
2023/04/23
4840
Django实践-03模型-01表生成模型+学科页面与教师页面编写
官网:https://www.djangoproject.com/ 博客:https://www.liujiangblog.com/
用户2225445
2023/10/16
1930
Django实践-03模型-01表生成模型+学科页面与教师页面编写
python-Django-Django 模型层的关联关系(一)
Django是一个流行的Python Web框架,其模型层允许开发人员定义数据库模型以及它们之间的关系。这些关系被称为模型关联关系,允许开发人员在不同的模型之间建立复杂的关联关系,从而实现更高级别的数据结构。
玖叁叁
2023/04/23
7220
模型继承与对应关系
在一对多关系基础上的父表中使用backref函数,并添加uselist参数来表示一对一关系
星哥玩云
2022/09/14
1.4K0
如何在 Django 中创建抽象模型类?
Django 中的抽象模型类是一个模型,它用作其他模型继承的模板,而不是一个旨在创建或保存到数据库的模型。在应用程序中,可以使用抽象模型定义多个模型共享的相似字段和行为。使用 Django,您可以定义一个派生自 Django.db.models 的模型类,以建立一个抽象模型类。
很酷的站长
2023/08/11
2460
如何在 Django 中创建抽象模型类?
Django ORM模型设计-客户关系管理
Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL 的设计与配置,View(视图)的编写,Template(模板)的设计和Form(表单)的使用。
小团子
2019/11/08
7940
Django ORM模型设计-客户关系管理
Django中的多态模型概念、使用场景以及如何实现多态模型
在Django开发中,经常遇到需要建立不同类型的模型之间的关系的情况。而使用多态模型可以帮助我们更好地管理这些复杂的关系。本文将介绍Django中的多态模型概念、使用场景以及如何实现多态模型。
网络技术联盟站
2023/07/13
3540
Django中的多态模型概念、使用场景以及如何实现多态模型
Django中拓展用户模型
本文基于上一篇文章的基础上进行修改Django中allauth的安装与基本使用
Hsinyan
2022/06/19
9800
Django中拓展用户模型
关系模型与多维模型差异示例(书摘备查)
左边是一个销售订单的典型的规范化表示。订单(Order)实体描述有关订单文档的信息,订单明细(Order Line)实体描述有关订单明细的信息,两个实体都包含描述订单和它的状态的信息。右边是一个订单状态维(Order Status Dimension),该维描述与订单和订单明细中对应的状态编码值的唯一组合。它包括在实体模型的订单和订单明细实体中都出现的属性。当销售订单事实行被装载时,参照在订单状态维中的适合的状态编码的组合设置它的外键。
用户1148526
2019/05/25
5240
Django—模型
ORM,全拼Object-Relation Mapping,中文意为对象-关系映射,是随着面向对象的软件开发方法发展而产生的。面向对象的开发方法是当今企业级应用开发环境中的主流开发方法,关系数据库是企业级应用环境中永久存放数据的主流数据存储系统。对象和关系数据是业务实体的两种表现形式,业务实体在内存中表现为对象,在数据库中表现为关系数据。内存中的对象之间存在关联和继承关系,而在数据库中,关系数据无法直接表达多对多关联和继承关系。因此,对象-关系映射ORM系统一般以中间件的形式存在,主要实现程序对象到关系数据库数据的映射。面向对象是从软件工程基本原则(如耦合、聚合、封装)的基础上发展起来的,而关系数据库则是从数学理论发展而来的,两套理论存在显著的区别。为了解决这个不匹配的现象,对象关系映射技术应运而生。O/R中字母O起源于"对象"(Object),而R则来自于"关系"(Relational)。几乎所有的程序里面,都存在对象和关系数据库。在业务逻辑层和用户界面层中,我们是面向对象的。当对象信息发生变化的时候,我们需要把对象的信息保存在关系数据库中。目前流行的ORM产品如Java的Hibernate,.Net的EntityFormerWork等。
py3study
2020/01/16
6.1K0
Django—模型
Django 之 Models(Models 模型 & 数据表关系)
<font color="red">欢迎阅读本专栏其他文章</font> Django 之路由篇 Django 之视图篇 Django 之模板篇 Models 模型 ORM --- ObjectRelationMap: 把面向对象思想转换成关系数据库思想,操作上把类等价于表格 类对应表格 类中的属性对应表中的字段 在应用中的models.py 文件中定义class 所有需要使用ORM的class都必须是 models.Model 的子类 class 中的所有属性对应表格中的字段 字段的类型都必须使用 mod
ruochen
2021/05/12
2.4K0
Django 之 Models(Models 模型 & 数据表关系)
django-模型之(ORM)对象关系映射(一)
所谓对象关系映射,就是将数据库的一些名字与python中的一些名字相对应,表名-->类名,字段-->属性,操作(增删改查)-->方法。这样,我们就可以通过对Python代码的编辑来对数据库进行操作。
西西嘛呦
2020/08/26
5470
Django模型
Django的模型定义在models.py文件中。模型是MVT中的M,也相当于MVC中的M。
zy010101
2021/10/09
1.9K0
Django模型
django模型
每个字段有一些特有的参数,例如,CharField(和它的派生类)需要max_length 参数来指定 VARCHAR 数据库字段的大小
程序员同行者
2018/08/16
3.1K0
django模型中有外键关系的表删除相关设置
1)关系字段放在AuthorDetail表中:作者删除详情删除,详情删除作者保留 2)作者找详情用 外键related_name(detail),详情找作者用 外键字段(author) 3)db_constraint断开表关联,on_delete规定逻辑关联删除动作,models.CASCADE级联删除
小小咸鱼YwY
2019/09/11
3K0
Django 教程 --- Django 模型
一个Django模块是内置的功能,Django使用创建表,他们的田地,和各种约束。简而言之,Django Models是与Django一起使用的SQL数据库。SQL(结构化查询语言)很复杂,涉及许多不同的查询,用于创建,删除,更新或与数据库有关的任何其他内容。Django模型简化了任务并将表组织到模型中。通常,每个模型都映射到单个数据库表。 本文围绕如何使用Django模型方便地将数据存储在数据库中展开。此外,我们可以使用Django的管理面板来创建,更新,删除或检索模型的字段以及各种类似的操作。Django模型提供了简单性,一致性,版本控制和高级元数据处理。模型的基础包括–
公众号---人生代码
2020/05/25
2.2K0
Django 模型中自定义Manager和模型方法
在语句Book.objects.all()中,objects是一个特殊的属性,通过它来查询数据库,它就是模型的一个Manager. 每个Django模型至少有一个manager,你可以创建自定义manager以定制数据库的访问. 这里有两个方法创建自定义manager:添加额外的manager;修改manager返回的初始Queryset.
菲宇
2019/06/13
2.8K0
点击加载更多

相似问题

Django -与类模型实例的关系

10

如何通过模型编写具有ManyToMany关系的Django模型

45

Django模型与多个模型的关系

22

Django模型与用户模型的关系

11

Django模型实例字段与Dict的ManyToMany关系

22
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文