【问题标题】:Define ManyToMany relation in another application in Django在 Django 的另一个应用程序中定义多对多关系
【发布时间】:2010-07-02 08:44:17
【问题描述】:

我有应用程序用户和项目,并想定义另一个名为角色的应用程序,用于为每个项目扩展 django-auth。

我在 Roles 应用程序中将 ProjectMembership 定义为自定义的 ManyToMany 关系模型。但是如何使用through 声明在 User 或 Project 模型中定义 M2M 字段?

那么问题是我们可以从另一个应用程序中定义模型的字段吗?

【问题讨论】:

    标签: django m2m


    【解决方案1】:

    我认为这是不可能的,即使有可能在我看来也是一个非常糟糕的解决方案。

    我认为您最好的选择是创建具有两个 FK 的 ProjectMembership 模型,一个给用户,一个给项目。然后你有一个手动 M2M 关系,你不能使用所有好的 Django 特性来处理 M2M 关系。

    如果您想要这些功能(不需要它们),那么您应该修改 User 或 Project 模型。

    【讨论】:

      【解决方案2】:

      是的,你可以,django 会自动为你创建反向关系。使用related_name为其命名!

      修改(资金修补)User 模型不是一个好主意。如果您想扩展它,请通过以下方式进行:

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-11-17
        • 2014-03-27
        • 2012-04-30
        • 2015-02-03
        • 2014-12-16
        • 2019-11-07
        • 1970-01-01
        相关资源
        最近更新 更多