Задать вопрос
@SenderD

Как совместить методы get и form_valid в django?

Прошу прощения за глупый вопрос, но как можно использовать метод get из классового представления для получения параметра представления, а затем добавить этот параметр в форму. Если есть другой способ, то скажите. Вот код:
class PostCreate(FormView):
    template_name = 'form.html'
    form_class = PostForm
    success_url = 'http://127.0.0.1:8000/'

    def form_valid(self, form, **kwargs):                 #kwargs - словарь с параметром(условно)
        form.cleaned_data['city'] = City.objects.get(title=kwargs['title'])   #сюда, вместо kwargs['title'], надо засунуть переданный параметр
        Post.objects.create(**form.cleaned_data)
        return redirect(self.get_success_url())

    def get(self, request, **kwargs):
        --------
  • Вопрос задан
  • 241 просмотр
Подписаться 1 Простой Комментировать
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Django
Седой и строгий
Все параметры доступны внутри form_valid в self.args и self.kwargs, использовать get не нужно. А вместо Post.objects.create(**form.cleaned_data) можно использовать модельную форму и делать просто form.save()
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы