Только начал изучать django и во всех книгах, и в доках примеры представления в основном пишут функциями. Решил изучить классы и переписываю прошлый "проект"
Суть вопроса: не могу переписать форму сортировки товара
def product_list(request):
products = Product.objects.filter(available=True)
form = ArticlesFilterForm(request.GET)
if form.is_valid():
if form.cleaned_data['ordering']:
products = products.order_by(form.cleaned_data['ordering'])
return render(request, 'shop/product/list.html', {'products': products,
'form': form})
#Получается что-то типа такого
class ProductsView(ListView):
model = Product
context_object_name = 'product_list'
template_name = 'shop/product_list.html'
form = ArticlesFilterForm
def get_queryset(self):
form = self.form(self.request.GET)
if form.is_valid():
if form.cleaned_data['ordering']:
product_list = product_list.prder_by(form.cleaned_data['ordering'])
def get_context_data(self, *args, **kwargs):
context = super().get_context_data(*args, **kwargs)
context['product_list'] = Product.objects.all()
context['form'] = ArticlesFilterForm
return context
Когда нажимаю сортировать выдает ошибку ( local variable 'product_list' referenced before assignment )