Форум сайта python.su
Не выходит множественное наследование в Django, выходит ошибка
'ProductDetailView' object has no attribute ‘object’
Это класс родитель
class MyTest(TemplateView): def get_context_data(self, **kwargs): context = super(MyTest, self).get_context_data(**kwargs) context['sections'] = Section.objects.all() context['categories'] = Category.objects.all() return context
class ProductDetailView(DetailView, MyTest): pass
Отредактировано Saturn (Авг. 12, 2012 09:03:36)
Офлайн
Для DetailView нужен self.object (или для его получения можно использовать self.get_object), определите его в ProductDetailView, пример:
class ProductDetailView(DetailView, MyTest):
def get_object(self):
return Product.objects.get(pk=self.kwargs.get('product_id'))
http://habrahabr.ru/post/137530/#get_object
Офлайн
adw0rd
У меня DetailView работает без метода get_object
class ProductDetailView(DetailView): # model = Product queryset = Product.objects.select_related().prefetch_related("colors","sizes") context_object_name = "product" template_name = "product.html"
def get_object(self): return Product.objects.select_related().prefetch_related("colors","sizes")
Офлайн
Уже разобрался, сделал совсем по другому.
Офлайн
Saturn:Уже разобрался, сделал совсем по другому.
Как?
Офлайн
Так :), зато работает.
class MyTest(object): def get_context_data(self, **kwargs): context = super(MyTest, self).get_context_data(**kwargs) context['sections'] = Section.objects.all() context['categories'] = Category.objects.all() return context
Отредактировано Saturn (Авг. 12, 2012 18:44:27)
Офлайн