django - order_with_respect_to рекурсивный внешний ключ - PullRequest
1 голос
/ 04 апреля 2011

Я использую 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

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

1 Ответ

2 голосов
/ 04 апреля 2011

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

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...