我有应用程序用户和项目,并希望定义另一个名为Roles的应用程序,以便为每个项目扩展django-auth。
我在Roles应用中将ProjectMembership定义为自定义ManyToMany关系模型。但是如何使用through
声明在用户或项目模型中定义M2M字段?
所以问题是我们可以从另一个应用程序定义模型的字段吗?
答案 0 :(得分:1)
我不认为这是可能的,即使有可能,我认为这是一个非常糟糕的解决方案。
我认为您最好的选择是创建具有两个FK的ProjectMembership模型,一个用户,一个用于Project。然后你有一个手动 M2M关系,你只能使用所有不错的Django功能来处理M2M关系。
如果你想要这些功能(不需要它们),那么你应该修改用户或项目模型。
答案 1 :(得分:1)
是的,django会自动为您创建反向关系。使用related_name
为其命名!
修改(货币修补)User
模型不是一个好主意。如果您想扩展它,请通过以下方式进行扩展: