Я новичок в Python и пытаюсь понять общие представления Django 1.3 на основе классов. Правильно теперь у меня есть следующее представление, которое получает список объектов Location в категории:
class category_detail(ListView):
"""Return a generic view of locations in a category."""
def get_context_data(self, **kwargs):
# Call the base implementation first to get a context.
context = super(category_detail, self).get_context_data(**kwargs)
# Add the current category to the context.
category = get_object_or_404(Category, slug=self.kwargs['slug'])
context['category'] = category
return context
def get_queryset(self):
category = get_object_or_404(Category, slug=self.kwargs['slug'])
return Location.objects.filter(category=category)
Он делает то, что я хочу, но вы можете видеть, что я повторяюсь, определяя категорию
дважды Есть ли способ добавить в класс новое свойство с именем category
, которое я определяю один раз вверху, а затем просто ссылаюсь на self.category
в get_queryset()
и get_context_data()
?