Написал
DetailView
который, кроме основной работы, генерирует форму:
class CategoryDetail(LoginRequiredMixin, DetailView):
model = Category
raise_exception = True
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['item_list'] = Item.objects.filter(
category_id=self.kwargs['pk']
).exclude(is_archived=True)
context['form'] = ItemChoiceForm
return context
под спойлером скрин для наглядности:
Добавляет товар в категорию токой View:
class AddItemToCategory(LoginRequiredMixin, View):
raise_exception = True
def post(self, request, **kwargs):
item = Item.objects.filter(pk=request.POST['item'])
item.update(category=kwargs['pk'])
messages.success(request, 'Товар добавлен в категорию')
return redirect(reverse('category_detail_url', args=[kwargs['pk']]))
Как видно, я использую сырые данные из POST запроса без всякой валидации
pk=request.POST['item']
. Как в такой ситуации проверять данные прилетевшие с клиента?