0

我对 Django 还很陌生,到目前为止,我已经习惯了它显示来自其他来源的数据。

我正在着手一个新项目,并且对 Django 处理模型关系的方式进行了查询(对于这个特定实例,一些搜索是否找不到太多),并且想知道完成它的最有效方法。

我有 3 个模型、用户(显然是:S)、项目和报告。现在报告是项目的一部分并由用户完成,但项目也由用户“拥有”。因为其他用户无法看到其他用户的报告/项目。我需要两个外键来报告还是只需要一个(例如,用户创建 projectA 和 Report1,因为 Report1 链接到项目,它也链接到用户),即:

Class Report(models.Model):
    user = models.ForeignKey(User)
    project = models.ForeignKey(Project)

或者

Class Report(models.Model):
    project = models.ForeignKey(Project)
4

1 回答 1

1

如果报告仅通过项目与用户相关联(这特别意味着,与项目不同的用户拥有报告是没有意义的),那么第二个更好。您将始终能够通过(report object).project.user或在搜索查询中访问用户'project__user'。如果您使用第一个,则可能会导致报告和项目的用户数据不同步,这对您的应用程序没有意义。

于 2012-04-30T21:22:29.810 回答