Создание подкласса модели категории Satchmo, но затем получение ошибки «Менеджер» объекта не имеет атрибута «root_categories»

Я использую Satchmo как часть веб-сайта, который я сейчас создаю. В данный момент я пытаюсь добавить больше функций в класс Satchmo Category, но, очевидно, я не собираюсь вносить какие-либо изменения в файлы Satchmo. Итак, я подумал, что создание подкласса класса Category даст мне новый класс, который содержит все свойства и методы Satchmo Category, позволяя мне добавлять свои собственные. Однако либо подклассы Python так не работают, либо я делаю это неправильно. Вот код, который я использую для подкласса категории:

from product.models import Category


class MyCategory(Category):
    """ additional functions to pull data from the Satchmo store app """

Один из методов, которые я обычно использую в классе Category:

Category.objects.root_categories()

однако, когда я пытаюсь получить доступ

MyCategory.objects.root_categories()

Я получаю следующую ошибку:

AttributeError: 'Manager' object has no attribute 'root_categories'

Может ли кто-нибудь указать мне в правильном направлении для решения этой проблемы?


person hellsgate    schedule 11.01.2011    source источник


Ответы (1)


Вам следует ознакомиться с документацией по специальным менеджерам. и наследование моделей.

В любом случае вам, вероятно, следует определить класс MyCategory как Прокси-модель, которая действительно наследует Manager родительского класса.

person Daniel Roseman    schedule 11.01.2011
comment
Спасибо Даниэль. Очевидно, мне нужно будет изучить пользовательские менеджеры и наследование моделей намного глубже, пока я буду продвигаться здесь, но что касается доступа к методу, который я хотел, это делает это. - person hellsgate; 11.01.2011