【发布时间】:2016-10-24 00:06:54
【问题描述】:
我从来没有做过这样的事情,所以我不确定解决这个问题的最佳方法是什么:
我有两个 Django 项目:
root/
project1/
manage.py
project1/
models.py
urls.py
...
project2/
manage.py
project2/
models.py
urls.py
...
这些项目使用相同的数据库,它们每个都有大约 10 个模型(数据库表),并且一些模型重叠:Project1 需要 Project2 模型之一的 ForeignKey,但 Project2 需要 Project1 模型之一的 ForeignKey:
项目1:
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)
项目2:
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 并反向,这会是一个问题吗? (循环引用?) 如果是这样,我该如何以其他方式完成此操作?
【问题讨论】:
-
为什么要分到不同的项目?为什么不直接制作这两个可重复使用的应用程序?
-
可重复使用的应用程序,我喜欢这样。应用程序应该打包在 python 包中并且可以安装,可以使用
pip,或者运行python setup.py install。 -
这里是github.com/slackmart/tastypie-sepomex 的一个例子,探索
setup.py。 -
这些项目是两个完全不同的网站,在不同的域下。 (它们有单独的模板、样式表、urls.py、views.py 等)。我之前从来没有做过可复用的应用,所以不知道在这种情况下是否可以使用它?
-
看起来像微服务?