2016-06-22 104 views
1

我從來沒有做過這樣的事情,所以我不知道什麼是最好的方法解決這個問題導入模型:Django的 - 從另一個項目

我有兩個Django的項目:

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

這些項目使用同一個數據庫,他們有大約10款(數據庫表),每部分型號的重疊:PROJECT1需要ForeignKey的從一個FO的Project2中的機型,同時也是Project2的需要ForeignKey的從PROJECT1的車型之一:

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到項目2的models.py但它說 '未知模塊'。我需要將project1導入到project2並反向,這會是一個問題嗎? (循環參考?) 如果是這樣,我怎麼能以其他方式完成這個?

+2

它爲什麼需要針對不同的項目?爲什麼不直接製作兩個可重用的應用呢? – e4c5

+0

可重複使用的應用程序,我喜歡。應用程序應該打包在一個python包中,並且可以安裝,也許可以使用'pip'或者運行'python setup.py install'。 – slackmart

+0

這裏https://github.com/slackmart/tastypie-sepomex一個例子,探索'setup.py'。 – slackmart

回答

0

嘗試將其他項目的路徑添加到您的PYTHONPATH中,然後將第一個項目的應用程序添加到settings.py安裝的第二個項目的應用程序中。 不要忘記先導入應用程序,並且必須在第二個應用程序的models.py中導入第一個應用程序的模型。我不確定它是否會工作,因爲我沒有測試過,但你可以試試看。