当前位置: 首页 > 面试题库 >

Django与其他字段的ManyToMany关系

易俊远
2023-03-14
问题内容

我想在其中自动创建的ManyToMany联接表中存储一些其他信息。我将如何在Django中做到这一点?

就我而言,我有两个表:“雇员”和“项目”。我要存储的是每个项目中每个员工每小时工作所获得的收入,因为这些价值并不相同。那么,我该怎么做呢?

我想到的是,不是使用方法“ ManyToManyField”,而是显式创建了一个第三类/表来存储这些新信息,并使用“ ForeignKey”方法设置其与“ Employees”和“ Projects”的关系。我很确定它会起作用,但这是最好的方法吗?


问题答案:

万一链接中断:

from django.db import models

class Person(models.Model):
    name = models.CharField(max_length=128)

    def __str__(self):              # __unicode__ on Python 2
        return self.name

class Group(models.Model):
    name = models.CharField(max_length=128)
    members = models.ManyToManyField(Person, through='Membership')

    def __str__(self):              # __unicode__ on Python 2
        return self.name

class Membership(models.Model):
    person = models.ForeignKey(Person)
    group = models.ForeignKey(Group)
    date_joined = models.DateField()
    invite_reason = models.CharField(max_length=64)


 类似资料:
  • 问题内容: 这是一个例子: 如果我有这些课程 在数据库中,我有一位作者名为“ George”,另一位作者名为“ Georfe”。最后一个是错误。因此,我想要的是每本以“ Georfe”为作者之一的书都被作者“ George”代替。 在SQL中确实很容易做到。如果id为“ George” = 3,id为“ Georfe” = 7,并且关系表名称为“ author_book”: 可以使用Django

  • 问题内容: 我有一个Django模型,我想在保存时或保存后修改对象权限。我已经尝试了几种解决方案,并且信号似乎是我想要做的最好的选择: 在这种情况下,当创建一个Project时,信号将触发,并且我看到,但是该字段为空列表。 保存后如何访问保存的数据? 问题答案: 你不会的 M2M是在实例保存后保存的,因此在所有m2m更新中都不会有任何记录。进一步的问题(即使你解决了这个问题)是,你仍在事务中,并且

  • 问题内容: 我需要具有2个字段的django modelform,其中第二个字段选择列表取决于在第一个字段中选择的内容。我的模特: 如果vehicle_type设置为 personal, 如何将 make 字段的选择设置为 PERSONAL_MAKES ?我怎样才能做到这一点?在模型级别上可以吗? __ 问题答案: 您可能不能,因为这取决于用户与表单的交互:您的服务器无法预先知道用户将表单发送到浏

  • 问题内容: 我想序列化一个模型,但想包含一个附加字段,该字段要求在要序列化的模型实例上进行一些数据库查找: 什么是正确的方法?我看到你可以将额外的“上下文”传递给序列化程序,是在上下文字典中传递附加字段的正确答案吗?使用这种方法,获取我需要的字段的逻辑不会与序列化程序定义完全独立,这是理想的,因为每个序列化的实例都需要。在DRF序列化器文档的其他地方,它表示 “额外字段可以对应于模型上的任何属性或

  • 问题内容: 我已经尝试了每个存在的Python Web框架,花了很长时间我才意识到没有一个灵丹妙药的框架,每个框架都有其优点和缺点。我从Snakelets入手,非常高兴能够将几乎所有内容都控制在较低的水平上,而不必大惊小怪,但是后来我发现了TurboGears,从那时起我一直在使用它(1.x)。Catwalk和Web控制台之类的工具对我来说是无价的。 但是随着TurboGears 2的问世带来了W

  • 在我的帖子页面(常规帖子类型)中,我设置了一个ACF关系字段。在这个里面,我可以选择公司名称,这些名称都在directory_listings的职位类型下。 现在,我在directory listings页面上有以下代码,因此使用simply get_字段不起作用,因为这些值不在该页面上,而是在POST类型的其他位置。 因此不确定如何获取信息。 目录_LISTINGS post type下某个页面