【问题标题】:Many to Many relationship Django Models with Extra Attributes具有额外属性的多对多关系 Django 模型
【发布时间】:2018-12-26 20:16:02
【问题描述】:

我是 Django 开发的初学者(以及一般的 MVC 编程!) 考虑以下示例,我如何将这些实体转换为模型?

用户(身份证、姓名、姓氏)

ENGLISH_CERTIFICATION(ID、代码、名称)

USER_CERTIFICATION(id、id_user、id_english_certification、日期)


class User(models.Model):
    name = models.CharField(max_length=64)
    surname = models.CharField(max_length=64)
    ???

class EnglishCertification(models.Model):
    code= models.CharField(max_length=2)
    name = models.CharField(max_length=64)
    ???

我把关系和字段“日期”放在哪里? 谢谢!

【问题讨论】:

  • 一个特定的EnglishCertification 是否可以由多个用户拥有?
  • 是的,同一个“EnglishCertification”可以多人拥有!

标签: python model-view-controller django-models many-to-many


【解决方案1】:

如果您想创建完全代表您描述的实体的模型,您可以简单地创建一个类似于以下内容的附加模型:

class UserCertification(models.Model):
    user = models.ForeignKey('User', on_delete=models.CASCADE)
    english_certification = models.ForeignKey('EnglishCertification', on_delete=models.CASCADE)
    date = models.DateField()

当然,您需要根据自己的需要调整上面的代码。有关更多信息,您可以查看:

https://docs.djangoproject.com/en/2.1/topics/db/examples/many_to_one/

希望对你有帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-15
    • 2023-03-21
    • 2012-07-22
    • 2013-11-14
    • 1970-01-01
    • 2014-05-16
    • 1970-01-01
    相关资源
    最近更新 更多