Django 模型 M2M 与同一模型中的其他 2 个模型的关系

Django Model M2M Relationship to 2 other models from the same model

在我的问题中,我有一个用户模型,其中用户(登录名)可以来自“供应商”公司或来自“客户”公司。

这两组表都是 M2M 关系:User-Customer 和 User-Supplier。

我可以link他们这样吗:

company = models.ManyToManyField(Customer, Supplier, on_delete=models.PROTECT, related_name='Users')

enter image description here

谢谢!!

你不能那样做。

更好的方法是,如果您使用类型为 SupplierCustomerCompany 模型,您可以为此创建一个枚举,因为您在你的两个模型,所以最好在一个模型中有一个类型。

How to make enum in model with TextChoices

Company:
     name
     address
     contact name
     type

然后在您的 User 模型中

company = models.ManyToManyField(Company, on_delete=models.PROTECT, related_name='Users')

这样更有意义。