как использовать классовые представления в Django - PullRequest
0 голосов
/ 08 апреля 2019

Я хочу использовать представления на основе классов вместо представлений на основе функций для отображения шаблона. Как преобразовать этот код в представления на основе классов

views.py

 def homepage(request):
    categories = Category.objects.filter(active=True)
    products = Product.objects.filter(active=True).order_by('-created')
    featured_products = Product.objects.filter(featured=True)
    return render(request,'shop/base.html',{'categories':categories,'product':products,'featured_products':featured_products})

def categories(request,slug):
    category = Category.objects.get(slug=slug)
    products = Product.objects.filter(category=category,active=True)
    return render(request,'shop/products_list.html',{'products':products})

1 Ответ

1 голос
/ 08 апреля 2019
class HomePage(TemplateView):
    template_name = "base.html" 

    def get_context_data(self, **kwargs):
        context = super(HomePage, self).get_context_data(**kwargs)
        context['categories'] = Category.objects.filter(active=True)
        context['products'] = Product.objects.filter(active=True).order_by('-created')
        context['featured_products'] = Product.objects.filter(featured=True)
        return context

Чтобы добавить некоторую дополнительную информацию, помимо той, которая предоставляется общим представлением, вы должны добавить дополнительный контекст Документация здесь

Получите ответ на этот вопрос о том, как передать дополнительные параметры классу.на основе Здесь

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