Django-从另一个项目导入模型 [英] Django - import model from another project

查看:318
本文介绍了Django-从另一个项目导入模型的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我从来没有做过这样的事情,所以我不确定什么是解决这个问题的最佳方法:

I've never done such thing so i'm not sure what would be the best approach for solving this problem:

我有两个Django项目:

I have two Django projects:

root/
    project1/
            manage.py
            project1/
                    models.py
                    urls.py
                    ...
    project2/
            manage.py
            project2/
                    models.py
                    urls.py
                    ...

这些项目使用相同的数据库,它们每个都有大约10个模型(数据库表),并且一些模型重叠:Project1需要Project2模型之一的ForeignKey,但Project2也需要Project1模型之一的ForeignKey:

Those projects use same database, they have around 10 models (database tables) each and some of the models overlap: Project1 needs ForeignKey from one fo the Project2's models, but also Project2 needs ForeignKey from one of the Project1's models:

Project1:

class Area_model(models.Model):
    name = models.CharField(max_length=25)
    url = models.CharField(max_length=25)

class Question_model(models.Model):
    text = models.TextField(max_length=1000)
    date = models.CharField(max_length=40)
    answer = models.SmallIntegerField()
    ...
    employee = models.ForeignKey(Employee_model)

Project2:

class Employee_model(models.Model):
    name = models.CharField(max_length=15)
    adress = models.CharField(max_length=15)
    area = models.ForeignKey(Area_model)

将project1.models导入到project2的models.py中,但显示为未知模块。我需要将project1导入到project2并进行反向,这会是一个问题吗? (循环引用?)
如果是这样,我如何以其他方式完成此操作?

I tried to import project1.models into project2's models.py but it says 'unknown module'. I need to import project1 to project2 and reverse, is that going to be a problem? (circular reference?) If so, how can i accomplish this in some other way?

推荐答案

在您的WSGI中.py,通过 sys.path.append('/ root')将第二个项目的路径添加到sys.path。

In your WSGI.py, add the path of your second project to the sys.path by sys.path.append('/root').

在第一个项目的settings.py中,将'project2.app2'添加到 INSTALLED_APPS 列表:

In your settings.py of the first project, add 'project2.app2' to the INSTALLED_APPS list:

INSTALLED_APPS = [
    ...
    'app1',
    'project2.app2',
    ...
]

然后您应该能够通过使用project2.project2.models import * 轻松导入第二个项目的模型*

And then you should be able to easily import the models of your second project by using from project2.project2.models import *

在至少这对我有用。

这篇关于Django-从另一个项目导入模型的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆