首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

created_by不与ManyToManyField django一起使用

"created_by不与ManyToManyField django一起使用"是一个关于Django框架中的数据模型设计的问题。在Django中,数据模型是用于定义数据库表结构的类。

首先,让我们来解释一下这两个概念:

  1. created_by:这是一个自定义的字段,通常用于记录某个对象的创建者。它可以是一个外键字段,关联到用户表,也可以是一个字符字段,用于存储创建者的用户名或ID。
  2. ManyToManyField:这是Django框架提供的一个字段类型,用于表示多对多的关系。它允许一个对象与多个其他对象建立关联关系。

现在,我们来回答这个问题:

在Django中,通常情况下,我们不会将"created_by"字段与"ManyToManyField"一起使用。原因如下:

  1. 数据模型设计的目的是为了实现数据的结构化存储和关联。"created_by"字段通常用于记录创建者的信息,而"ManyToManyField"用于建立多对多的关联关系。这两个字段的功能和用途不同,所以它们通常不会同时使用。
  2. 如果我们将"created_by"字段与"ManyToManyField"一起使用,可能会导致数据模型的复杂性增加。多对多关系通常需要中间表来存储关联关系,而"created_by"字段通常是一个简单的外键或字符字段。将它们合并在一起可能会导致数据模型的结构变得复杂,不易维护。

所以,根据上述原因,我们不建议将"created_by"字段与"ManyToManyField"一起使用。

如果您需要在Django中实现多对多关系,并且需要记录创建者信息,可以考虑以下解决方案:

  1. 使用"created_by"字段作为外键字段,关联到用户表。然后,使用Django框架提供的ManyToManyField来建立多对多关系。
  2. 如果需要更复杂的关联关系,可以考虑使用中间表来存储关联关系,并在中间表中添加"created_by"字段。

总结起来,根据具体的业务需求和数据模型设计的原则,我们可以灵活选择是否将"created_by"字段与"ManyToManyField"一起使用。在大多数情况下,它们通常是独立使用的。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

基于Django OneToOneField和ForeignKey的区别详解

根据Django官方文档介绍: A one-to-one relationship....相反地,使用ForeignKey, 反向关联后会返回QuerySet。...我们可以根据生活常识理解这种定义,由于一部汽车对应一个生产商,而一个生产商可以对应许多部汽车,所以两者具有“一对多”的关系,在此种情况我们使用ForeignKey。...ManyToManyField类有两个经常使用的参数:through和through_fields,通过这两个参数可以十分方便地建立中间项的关联,如示例代码所示: from django.db import...,其为这一字段建立一个单独的属性,而是设定symmetrical属性为True,若期望使用此类迭代关系,可以手动设置其为False through 如上所示,用于设置中间项的名字,可以自己定义一个中间项

2.3K20

django 1.8 官方文档翻译: 2-1-1 模型语法(初稿)

通常来说,如果启用了 Django 管理后台,你就可以在后台将 ManyToManyField 实例添加到关联对象中。...get_absolute_url() Django 使用这个方法算出某个对象的网址(URL)。Django 在管理后台和任何需要得到对象网址的地方使用该方法。...小心使用 related_name 如果你在 ForeignKey 或 ManyToManyField 字段上使用 related_name 属性,你必须总是为该字段指定一个唯一的反向名称。...我们实现了这两种特性(Meta.proxy和Meta.unmanaged)之后,曾尝试把两者结合到一起。...结果证明,宏观的继承关系和微观的 manager 揉在一起,不仅导致 API 复杂难用,而且还难以理解。由于任何场合下都可能需要这两个选项,所以目前二者仍是各自独立使用的。

3.1K30

第 03 篇:创建 Django 博客的数据库模型

# 而对于标签来说,一篇文章可以有多个标签,同一个标签下也可能有多篇文章,所以我们使用 # ManyToManyField,表明这是多对多的关联关系。...提示: 在本教程中我们会教你这些类型的使用方法,但以后你开发自己的项目时,你就需要通过阅读 django 官方文档 关于字段类型的介绍[1] 来了解有哪些数据类型可以使用以及如何使用它们。...而对于标签来说,一篇文章可以有多个标签,同一个标签下也可能有多篇文章,所以我们使用 ManyToManyField,表明这是多对多的关联关系。...理解多对一和多对多两种关联关系 我们分别使用了两种关联数据库表的形式:ForeignKey和 ManyToManyField。 ForeignKey ForeignKey 表明一种一对多的关联关系。...详细示例[3]•django ManyToManyField 简介[4]•django ManyToManyField 详细示例[5] References [1] 关于字段类型的介绍: https:/

55240

django 1.8 官方文档翻译:2-1-1 模型语法

对于这些情况,Django 允许你指定一个模型来定义多对多关系。 你可以将其他字段放在中介模型里面。源模型的ManyToManyField 字段将使用through 参数指向中介模型。...中介模型有一些限制: 中介模型必须有且只有一个外键到源模型(上面例子中的Group),或者你必须使用ManyToManyField.through_fields 显式指定Django 应该使用的外键。...既然你已经设置好ManyToManyField使用中介模型(在这个例子中就是Membership),接下来你要开始创建多对多关系。...小心使用 related_name 如果你在 ForeignKey或  ManyToManyField字段上使用  related_name属性,你必须总是为该字段指定一个唯一的反向名称。...我们实现了这两种特性之后,曾尝试把两者结合到一起。 结果证明,宏观的继承关系和微观的 管理器揉在一起,不仅导致 API 复杂难用,而且还难以理解。

4.9K20

创建 Django 博客的数据库模型

# 而对于标签来说,一篇文章可以有多个标签,同一个标签下也可能有多篇文章,所以我们使用 ManyToManyField,表明这是多对多的关联关系。...在本教程中我们会教你这些类型的使用方法,但以后你开发自己的项目时,你就需要通过阅读Django 官方文档 关于字段类型的介绍 来了解有哪些数据类型可以使用以及如何使用它们。...而对于标签来说,一篇文章可以有多个标签,同一个标签下也可能有多篇文章,所以我们使用 ManyToManyField,表明这是多对多的关联关系。...理解多对一和多对多两种关联关系 我们分别使用了两种关联数据库表的形式:ForeignKey 和 ManyToManyField。 ForeignKey ForeignKey 表明一种一对多的关联关系。...Django ManyToManyField 简介 Django ManyToManyField 详细示例 总结 本章节的代码位于:Step3: blog models。

1.3K60

django模型动态修改参数,增加 filter 字段的方式

字段参数: - to:设置要关联的表 - to_field:设置要关联的表的字段 - related_name:反向操作时,使用的字段名,用于代替原反向查询时的'表名_set'。...当我们要查询某个班级关联的所有学生(反向查询)时,我们会这么写: models.Classes.objects.first().students.all() - related_query_name:反向查询操作时,使用的连接前缀...self", symmetrical=False) 此时,person对象现在就可以使用person_set属性进行反向查询。...through:在使用ManyToManyField字段时,Django将自动生成一张表来管理多对多的关联关系。...models.ForeignKey(to="Book") class Meta: unique_together = ("author", "book") 注意:当我们需要在第三张关系表中存储额外的字段时,就要使用第三种方式

3.8K31

django 模型关系

模型关系 关系数据库的威力体现在表之间的相互关联,Django提供了三种最常见的数据库关系:多对一 (many-to-one),多对多(many-to-many),一对一(one-to-one)...多对一关系 多对多关系 一对一关系 多对一 django使用django.db.models.ForeignKey 定义多对一关系 ForeignKey需要一个位置参数来指定本Model关联的Model...clear() #从关联的对象集中删除所有的对象 多对多 要实现多对多,就要使用django.db.models.ManyToManyField类,和ForeignKey一样,它也有一个位置参数,用来指定和它关联的...max_length=50) #... class Person(models.Model): name = CharField(max_length=50) groups = models.ManyToManyField...(Group) 建议以被关联模型名称的复数形式做为 ManyToManyField 的名字 在哪个模型中设置 ManyToManyField 并不重要,在两个模型中任选一个即可——不要在两个模型中都设置

1.4K30

基于Django signals 信号作用及用法详解

using:被使用的数据库别名 7)m2m_changed() django.db.models.signals.m2m_changed 当一个model的ManyToManyField发生改变的时候被发送...参数: sender:描述ManyToManyField的中间模型类,这个中间模型类会在一个many-to-many字段被定义时自动被创建。...我们可以通过使用many-to-many字段的through属性来访问它 instance:被更新的多对多关系的实例。它可以是上面的sender,也可以是ManyToManyField的关系类。...这个信号通常是在Django内部使用,一般不会被第三方应用使用。...3、使用信号 1)监听信号 即想要接收信号,可以使用Signals.connect()方法注册一个接收器函数,当信号被发送时接收器函数被调用。

2K20

Django之Model的Meta选项详解

这个设置让你在使用model的Manager上的lastest方法时,默认使用指定字段来排序 managed Options.managed 默认为True,意思是Django在migrate命令中创建合适的数据表...如果一个带有managed=False的模型含有指向其他未被管理模型的ManyToManyField,那么多对多连接的中介表也不会被创建。...如果你需要修改这一默认行为,创建中介表作为显式的模型(设置为managed),并且使用ManyToManyField.through为你的自定义模型创建关联。...Person的FirstName和LastName两者的组合必须是唯一的,那么需要这样设置: unique_together = (("first_name", "last_name"),) 一个ManyToManyField...如果你需要验证关联到ManyToManyField字段的唯一验证,尝试使用signal(信号)或者明确指定through属性。

90330

Django---ORM操作大全

前言 Django框架功能齐全自带数据库操作功能,本文主要介绍Django的ORM框架 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用 MySQLdb...,翻译成对应的sql语句;所有使用Django开发的项目无需关心程序底层使用的是MySQL、Oracle、sqlite.......admin级别生效 针对 dango_admin生效的参数(正则匹配)(使用Django admin就需要关心以下参数!!))...由于 DjangoORM中一个类名对应一张表,要想操作表就modles.类直接操作那张表,但使用ManyToManyField字段生成 “第三张”关系表怎么操作它呢?...ManyToManyField('Boy')字段(杂交类型) ManyToManyField()字段创建第3张关系表,可以使用字段跨表查询,但无法直接操作第3张表, 自建第3表关系表可以直接操作,但无法通过字段

6.8K100

探索 PythonDjango 支持分布式多租户数据库,如 Postgres+Citus

在 Citus 中分发数据 将 Django 应用程序更新为范围查询 使用中间件自动化 更多 在 确定分布策略 中,我们讨论了在多租户用例中使用 Citus 所需的与框架无关的数据库更改。...将租户列介绍给我们想要分发的缺少它的模型 更改分布式表的主键以包含租户列 更新模型以使用 TenantModelMixin 分发数据 将 Django 应用程序更新为范围查询 准备横向扩展多租户应用程序...更新模型以使用 TenantModelMixin 和 TenantForeignKey 接下来,我们将使用 django-multitenant 库将 account_id 添加到外键中,以便以后更轻松地查询应用程序...此时,Django 应用程序模型已准备好与 Citus 后端一起工作。您可以继续将数据导入新系统并根据需要修改视图以处理模型更改。...使用中间件自动化 而不是在每个视图中调用 set_current_tenant(), 您可以在 Django 应用程序中创建并安装一个新的 middleware 类来自动完成。

2K10
领券