что надо передать в return view post django
что надо возвращать в return в post? ошибка: ValueError: The view plugins.views.ViewCurrentPlugins didn't return an HttpResponse object. It returned None instead.
views.py
class ViewCurrentPlugins(DetailView):
model = Plugins
context_object_name = 'plugins'
template_name = 'plugins/plugins_detail_view.html'
context_object_name = 'plugins_item'
def get_context_data(self, *, object_list=None, **kwargs):
context = super().get_context_data(**kwargs)
context['tag'] = self.kwargs['tag']
context['form'] = RelatedPluginForm()
return context
def post(self, request, **kwargs):
form = RelatedPluginForm(request.POST)
related_id = request.POST['related']
if form.is_valid():)
self.plugin = self.get_object()
self.plugin.related.add(related_id)
self.plugin.save()
return
else:
return
Ответы (1 шт):
Возможно для этого примера больше подойдет FormView.
В крайнем случае, можно подсмотреть, что именно он возвращает пользователю.
Например в случае валидной формы:
return HttpResponseRedirect(...)
в случае провала, когда нужно заново сгенерировать страницу с этим контекстом:
return self.render_to_response(self.get_context_data(form=form))
только в Вашем случае, возможно, придется передавать все необходимые параметры для формирования контекста.
Так же можно дополнительно подправить метод get_context_data, заменив формирование формы для контекста, что бы данные введенные пользователем не терялись
context['form'] = kwargs.get('form', RelatedPluginForm())