2011-04-04 63 views
1

我正在使用Django 1.2.3。我有一個代表類別和子類別的表格。對於子類別,它只是將其自己的表中的「父」主鍵引用爲其父項。它看起來是這樣的:django - order_with_respect_to遞歸外鍵

class Category(models.Model): 
    def __unicode__(self): 
     return self.name 
    class Meta: 
     db_tablespace = 'Category' 
     verbose_name = 'Category' 
     verbose_name_plural = 'Categories' 
     ordering = ['display_weight', 'name'] 
     order_with_respect_to = 'parent' 
    name = models.CharField('Category Name', max_length=32) 
    parent = models.ForeignKey('self', blank=True, null=True) 
    display_weight = models.IntegerField('Display Weight', default=50) 

,當我嘗試驗證/ SYNC這個數據庫,我收到以下錯誤:

AttributeError: 'str' object has no attribute 'get_category_order'

看來,它不會讓我對於訂購「外鍵」是遞歸的。任何人都可以解釋一下有沒有解決的辦法?可能有幾個級別的類別和子類別,但是永遠不會在表格中定義循環引用。

+0

這很奇怪,我試過用南,它工作得很好。你在Django項目中使用South嗎? – 2011-04-04 00:50:34

回答

2

這個changeset顯示你的問題已經在你正在使用的django版本中修復。它是這個changeset的回溯。

的問題在這裏討論這些門票:

http://code.djangoproject.com/ticket/2740

http://code.djangoproject.com/ticket/13241

您可能要檢查,如果你的Django有補丁代碼。

+0

謝謝kriegar,這張票有我的對象幾乎完全像我一樣定義。這似乎是一個直截了當的錯誤。我下載了base.py的diff文件,並將其作爲ubuntu中.deb軟件包中文件的補丁應用,但我似乎仍然收到相同的錯誤消息。 – 2011-04-04 03:17:19