@YuriyCherniy

Как валидировать данные формы если форма сгенерирована другим View?

Написал 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

под спойлером скрин для наглядности:
spoiler
5ed38cf922c07352044711.png

Добавляет товар в категорию токой 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']. Как в такой ситуации проверять данные прилетевшие с клиента?
  • Вопрос задан
  • 40 просмотров
Решения вопроса 1
@bacon
почему бы не использовать FormView или UpdateView, а не View?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы