Django循环导入和模型问题

Ave*_*xim 1 python django import dependencies circular-dependency

models.py在两个不同的应用程序中有两个Django .

processor app models.py

from address.models import Address
...defining clasess
class Displayble(models.Model):
 # It has no DB fields
Run Code Online (Sandbox Code Playgroud)

address app models.py

from processor.models import Displayable
class Address(models.Model, Displayble):
...some fields, stored in DB
Run Code Online (Sandbox Code Playgroud)

Dispalyble类移动到另一个文件是解决此依赖关系的唯一选择吗?

小智 5

Address用django 导入模型apps.get_model.https://docs.djangoproject.com/en/1.11/ref/applications/#django.apps.apps.get_model.

在你的processor app models.py替换

from address.models import Address
...defining clasess
class Displayble(models.Model):
# It has no DB fields
Run Code Online (Sandbox Code Playgroud)

from django.apps import apps
Address = apps.get_model(app_label='address', model_name='Address')
....go ahead and use Address as though imported
class Displayable(models.Model):
...
Run Code Online (Sandbox Code Playgroud)

  • 当我尝试这样做时,我得到“django.core.exceptions.AppRegistryNotReady:模型尚未加载。”我在互联网上看到的每个答案都说我应该通过仅使用模型的路径作为字符串来解决这个问题外键关系,但我不想在这里使用外键关系...... (4认同)