2011-04-04 4 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) 

При попытке проверить/синхронизировать эту базу данных, я получаю следующее сообщение об ошибке:

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

Кажется, что он не будет препятствовать мне заказ по а «внешний ключ», который является рекурсивным. Может кто-нибудь объяснить это. Есть ли способ обойти это? Может быть несколько уровней категорий и подкатегорий, но в таблице никогда не будет циклических ссылок.

+0

Это странно, я пробовал его с Югом, он работает очень хорошо. Вы используете Юг в своем проекте Django? –

ответ

2

Это changeset показывает, что ваша проблема была исправлена ​​в версии используемого django. Это backport этого changeset.

вопрос обсуждается здесь, в этих билетов:

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

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

Вы можете проверить, если ваш Джанго имеет исправленный код.

+0

Спасибо, kriegar, этот билет имел мой объект, определенный почти так же, как у меня. Кажется, это ошибка с прямым движением. Я загрузил diff для base.py и применил его как патч к файлу в пакете .deb в ubuntu, но я все еще, похоже, получаю такое же сообщение об ошибке. –

Смежные вопросы