我使用通用外鍵與從auth.User
繼承了我Users
模型涉及不同的配置文件。我不能做dumpdata
雖與--natural
選項傳遞。它說,Django的:通用外鍵dumpdata:無法解析相關
錯誤:無法解析myproject.AdminProfile,myproject.TeacherProfile,myproject.Users在序列化應用程序列表中的依賴關係。
根據documentation,據說我們需要執行natural_key methods來取和涉及泛型關係的閃存燈具。我怎麼能用我在這裏介紹的模型來做到這一點?
class Users(User):
location = models.TextField('Location', blank=True)
created_by = models.ForeignKey('self', null=True, blank=True, related_name='created_by_user')
# Generic foreign key setup to hold the extra attributes
profile_contenttype = models.ForeignKey(ContentType, null=True, blank=True)
profile_object_id = models.PositiveIntegerField('Extra ID', null=True, blank=True)
profile_object = generic.GenericForeignKey('profile_contenttype', 'profile_object_id')
class AdminProfile(models.Model):
organization = models.CharField('Organization', max_length=100)
# profile reverse relation to get the user
users_link = generic.GenericRelation('Users', content_type_field='profile_contenttype',
object_id_field='profile_object_id')
class TeacherProfile(models.Model):
designation = models.CharField('Designation', max_length=100)
# profile reverse to get the user
users_link = generic.GenericRelation('Users', content_type_field='profile_contenttype',
object_id_field='profile_object_id')
使用Django 1.4.3和Postrgres。
*我發現當模型(包括具有自引用的模型)*之間存在循環依賴關係時,會出現此問題。謝謝(你的)信息。其實我有一個自我參考的領域。對不起,第一次沒有添加(現在檢查編輯)。當我刪除它時,我可以獲得轉儲。但無論如何我需要這個領域。那可能嗎?或者我必須創建另一個模型來保持這種興趣? – Babu
@Babu就是這樣!檢查我更新的答案。你的代碼在1.2.5和1.5b2(這個bug已經被修復)中工作正常,但是在1.4中沒有(我假設在1.3中)。 – mgibsonbr
感謝您的詳細解答和多版本測試結果。 :)我會去創建另一個模型。這很奇怪,可惜它在1.4中不固定。 – Babu