gpt4 book ai didi

django - 是否在M2M关系中使用直通模型

转载 作者:行者123 更新时间:2023-12-02 05:25:53 24 4
gpt4 key购买 nike

我正在将用户的教育程度添加到他的用户个人资料中。用户可能有多个关于他的教育的条目。我是否应该使用基本的 M2M 关系,例如 --

class Education(models.Model):
school = models.CharField(max_length=100)
class_year = models.IntegerField(max_length=4, blank=True, null=True)
degree = models.CharField(max_length=100, blank=True, null=True)

class UserProfile(models.Model):
user = models.ForeignKey(User, unique=True)
educations = models.ManyToManyField(Education)

或者我应该对这种关系使用直通模型吗?谢谢。

最佳答案

@manji是正确的:无论您是否使用 through,Django 都会创建一个映射表。

提供一个示例来说明为什么您可能希望向中介或通过表添加更多字段:
您可以在 through 表中添加一个字段来跟踪该特定教育是否代表该人最终就读的学校:

class Education(models.Model):
...

class UserProfile(models.Model):
...
educations = models.ManyToManyField(Education, through='EduUsrRelation')

class EducationUserRelation(models.Model):
education = models.ForeignKey(Education)
user_profile = models.ForeignKey(UserProfile)
is_last_school_attended = models.BooleanField()

关于django - 是否在M2M关系中使用直通模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6318589/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com