在Django中获取另一个应用程序中的模型的引用

时间:2015-12-09 16:52:19

标签: python django django-models django-apps

我想这会相对简单但我无法找到解决方案。我有两个应用程序'库'和'计数'。我想从'计数'里面引用'库'中的模型。这两个应用都在settings.INSTALLED_APPS中注册。 我的项目是名为'slideaudit'的virtualenv。那是名为'src'的项目文件夹。我的应用程序位于'src'以及conf文件夹下。 我想我会写类似的东西: 来自project_name.app_name.models import model_name

虽然在这个问题上似乎有相当多的帖子,但我没有找到一个能完成这项任务的人。有什么想法吗?

1 个答案:

答案 0 :(得分:5)

这取决于你的意思参考:

  1. 如果您只想这样做:from app1.models import MyModel1这不需要任何特殊配置:只需将app1添加到INSTALLED_APPS,django就会直接识别它。
  2. 但如果您的意思是参考外键,您不需要导入模型,请按以下步骤操作:

    class NyModel2(model.Model):
        field = models.ForeignKey("app1.MyModel1", verbose_name="my_model1", related_name="my_models2")
    
    • django将了解您需要来自MyModel1
    • 的模型app1
    • related_name属性指定反向关系的名称,这意味着my_model1.my_models2.all()会将 my_model1 的所有 MyModel2 实例作为外键返回。