Django-从另一个项目导入模型 [英] Django - import model from another project
问题描述
我从来没有做过这样的事情,所以我不确定什么是解决这个问题的最佳方法:
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屋!