2013-04-08 61 views
0

我有以下2種型號,我想給他們一個多對多的關係鏈接:按名稱,無法在執行syncdb

  • WWW/hruser/models.py

    from django.db import models 
    
    class HRuser(models.Model): 
        """Custom user class.""" 
        email = models.EmailField(max_length=60, unique=True, db_index=True) 
        is_active = models.BooleanField(default=True) 
        is_staff = models.BooleanField(default=False) 
        video = models.ManyToManyField('www.pandastream.models.Video', related_name='users') 
    
  • WWW/pandastream/models.py

    from django.db import models 
    
    from www.hruser.models import HRuser 
    
    
    class Video(models.Model): 
        """Video object, really basic for now.""" 
        video_id = models.CharField(max_length=32, unique=True, db_index=True) 
        user = models.ForeignKey(HRuser, related_name='videos') 
    

正如您所看到的,它們位於不同的應用程序中,並且Video也具有用於HRuser的ForeignKey。 爲了避免圓形進口在www/hruser/models.py我嘗試使用一個懶惰的關係,定義在文檔here,但它提出了在執行syncdb的錯誤:

Error: One or more models did not validate: 
hruser.hruser: 'video' has an m2m relation with model www.pandastream.models.Video, which has either not been installed or is abstract. 

到目前爲止,我曾嘗試:

  • 導入我的視頻模式在Python外殼,其工作
  • 從MySQL切換(5.6.10)對於SQLite(3.7.12)
  • 從Django的1.5切換到Django的1.4
  • HRuser.video字段更改爲一個簡單的ForeignKey的領域
  • 來看待django.core.management.validation

所有這一切都沒有改變任何東西,以我的問題的根源,所以無論是我不理解正確的文檔,或該文件是錯誤的,但無論如何,任何幫助將不勝感激。

回答

0

如文檔鏈接中所述,將目標引用爲字符串的方式爲"appname.Model"。所以它應該是"pandastream.Video"

+0

哇,謝謝,我不能相信我一直都在思念。 – baptistemillou 2013-04-08 11:04:31