Django多个关系超过2个应用程序

Yur*_*upa 3 python django uml django-models

我正在尝试创建一个客户可以喜欢供应商和商店的关系,并在我的类图上(见下图)我有以下关系:

在第一个应用程序中,我有一个person对象,由供应商和客户端继承在第二个应用程序中,我只有一个商店对象(与供应商有向后关系,但它没有在类图上显示,这就是第二个应用程序即时)

问题是客户端与供应商有很多关系,而另一个与商店有很多关系,但关系客户端/存储生成错误,导致app2在应用1之后失效.

有没有办法让通用的多种关系?

因为客户可以拥有许多供应商和许多商店,商店可以拥有许多客户,供应商可以拥有许多客户

类图

我使用的代码:

class Store(models.Model):
    name = models.CharField("Nome", max_length=100)
    description = models.CharField("Descrição", max_length=300)

    class Meta:
        app_label = 'store'

class Person(models.Model):
    first_name = models.CharField("Primeiro Nome", max_length=100)
    last_name = models.CharField("Ultimo Nome", max_length=100)

    class Meta:
        app_label = 'core'


class Vendor(Person):
    bio = models.TextField("Bio", max_length=300, blank=True)
    last_update = models.DateTimeField("Ultima Atualização", auto_now=True)

    class Meta:
        app_label = 'core'


class Client(Person):
    favorite_stores = models.ManyToManyField(Store)
    favorite_vendors = models.ManyToManyField(Vendor)

    class Meta:
        app_label = 'core'
Run Code Online (Sandbox Code Playgroud)

此代码给出了以下错误:

self.models_module = import_module(models_module_name)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
  File "/core/models.py", line 7, in <module>
    from store.models import Store
  File "/store/models.py", line 6, in <module>
    from core.models import Vendor
Run Code Online (Sandbox Code Playgroud)

而我想在管理员中看到的很简单: 管理

小智 6

只需添加两个ManyToMany关系,而不是导入"Store"模型,直接使用字符串(以避免循环依赖)

class Client(Person):
   favorite_stores = models.ManyToManyField('store.Store')
   favorite_vendors = models.ManyToManyField(Vendor)
Run Code Online (Sandbox Code Playgroud)