首页
学习
活动
专区
工具
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 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
  • 创建 Django 博客的数据库模型

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

    1.3K60

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

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

    57340

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

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

    5K20

    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---ORM操作大全

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

    7K100

    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属性。

    98230

    如何检查列表中的某个帖子是否被当前用户投票

    在 Django 项目中,如果需要检查一个列表中的某个帖子是否被当前用户投票(比如点赞或踩),可以通过数据库查询实现。...以下是具体的实现方法,假设你使用的是 Django 并有如下的数据库模型结构:问题背景我正在创建一个reddit克隆,其中存在一个问题,我正在寻找一种方法来指示当前用户是否对某个特定问题进行过投票,而不会产生过多数据库请求...= models.DateField() user = models.ForeignKey(settings.AUTH_USER_MODEL) userUpVotes = models.ManyToManyField...(settings.AUTH_USER_MODEL, blank=True, related_name='threadUpVotes') userDownVotes = models.ManyToManyField...import get_object_or_404, renderfrom community.models import Thread, Commentfrom django.http import

    4400

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

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

    2.1K10

    django--图书管理系统(项目)

    django创建一个新的项目 设置静态文件,更改settings配置,在最后添加 STATICFILES_DIRS = [     os.path.join(BASE_DIR, 'static'),...] 在Bookmanager目录下创建static目录,目录结构如下: 设计表:(表与表的关系,表结构) 修改models.py文件 from django.db import models # ...publish = models.ForeignKey(to="Publish", to_field="id", on_delete=models.CASCADE)     # 与Author表建立多对多的关系,ManyToManyField...可以建在两个模型中的任意一个,自动创建关系表book_authors     authors = models.ManyToManyField(to="Author") 连接数据库 没有使用pycharm...默认使用的是sqllite数据库,可以看到5张表已经创建好了 app_author  作者表 app_authordetail 作者详情表 app_book  书籍表 app_book_authors

    64820
    领券