Форум сайта python.su
Помогите разобраться, почему не могу принять данные в шаблоне.
##views.py class Sorted(TemplateView): template_name = "category.html" def get_context_data(self, **kwargs): context = super(Sorted, self).get_context_data(**kwargs) context['brands'] = Brand.objects.all() context['sizes'] = Size.objects.all() return context
#urls.py from product.views import Sorted url(r'^(?P<sect>\w+)/cat/(?P<cat>\d+(-\d+)*)/$', Sorted.as_view()),
{% for brand in brands %} <label class="checkbox"> <input type="checkbox"> <a href="/man/brand/{{ brand.id }}/">{{ brand.name }}</a> </label> {% endfor %}
Отредактировано Saturn (Авг. 4, 2012 15:41:18)
Офлайн
Вы представляете себе, что такое класс и наследование?
Офлайн
fata1exДа представляю, но не в полной степени. А что ?
Вы представляете себе, что такое класс и наследование?
Офлайн
#models.py
class Sorted(TemplateView):
и
from product.views import Sorted
вам не кажется это странным?
И еще, перед "return context" сделайте вывод в консоль, есть там что? А лучше используйте debug_toolbar или pudb, например
Отредактировано adw0rd (Авг. 4, 2012 15:03:57)
Офлайн
SaturnЭто как вообще? Почитайте про то, что такое методы у классов.#models.py class Sorted(TemplateView): template_name = "category.html" def get_context_data(self, **kwargs): context = super(Sorted, self).get_context_data(**kwargs) context['brands'] = Brand.objects.all() context['sizes'] = Size.objects.all() return context
Отредактировано fata1ex (Авг. 4, 2012 15:13:51)
Офлайн
adw0rd
Да, действительно, неправильно написал.
Должно быть
#views.py class Sorted(TemplateView):
Офлайн
Действительно не заметил что в моем случае метод get_context_data не относится к данному
классу Sorted. Теперь все работает.
class SortedView(TemplateView): template_name = "category.html" def get_context_data(self, **kwargs): context = super(SortedView, self).get_context_data(**kwargs) cat = self.kwargs.get('cat', 1).replace("-",",") context['categories'] = Category.objects.filter(sect_id = get_section(self.kwargs.get('sect', None))) context['brands'] = Brand.objects.all() context['sizes'] = Size.objects.all() context['products'] = Product.objects.extra(where=['category_id IN (' + cat + ')']).select_related("brand") return context
Отредактировано Saturn (Авг. 4, 2012 16:15:45)
Офлайн
Кстати
cat = self.kwargs.get('cat', 1).replace("-",",")
1.replace("-", ",") # AttributeError: 'int' object has no attribute 'replace'
context['products'] = Product.objects.extra(where=['category_id IN (' + cat + ')'])
categories = self.kwargs.get('cat', "1").split("-") context['products'] = Product.objects.filter(category_id__in=categories)
Отредактировано reclosedev (Авг. 4, 2012 19:37:00)
Офлайн
reclosedev
Дак у меня “cat” c url берется, если его не будет тогда Page not found 404
url(r'^(?P<sect>\w+)/cat/(?P<cat>\d+(-\d+)*)/$', SortedView.as_view()),
когда можно:
categories = self.kwargs.get('cat', “1”).split(“-”)
context = Product.objects.filter(category_id__in=categories)
Отредактировано Saturn (Авг. 4, 2012 20:24:03)
Офлайн