Я использую Django 1.2.3. У меня есть таблица, которая представляет категории и подкатегории. Для подкатегорий он просто ссылается на первичный ключ «родителя» из своей таблицы в качестве своего родителя. Это выглядит примерно так:
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' нет
атрибут get_category_order
Похоже, он не позволит мне сделать заказ в отношении "внешнего ключа", который является рекурсивным. Может кто-нибудь объяснить это. Это можно обойти? Может быть несколько уровней категорий и подкатегорий, но в таблице никогда не будет циклических ссылок.