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

Как грамотно отрендерить страницу после post запроса в классе View Django3?

views.py:
from django.shortcuts import render, redirect
from django.views import View

from .models import HeaderTextDesc, Contacts, Portfolio
from Services.models import Services
from Applications.forms import ApplicationsForm


class MainView(View):
    def post(self, req):
        form = ApplicationsForm(req.POST)
        if form.is_valid():
            form.save()
            return redirect('/')

    def get(self, req):
        headerTextDesc, contacts = HeaderTextDesc.objects.all()[0], Contacts.objects.all()[0]
        services_objects = Services.objects.all()
        potrfolio_objects = Portfolio.objects.all()
        form = ApplicationsForm()

        context = {
            'title': headerTextDesc.title,
            'desc': headerTextDesc.description,
            'tel_number': contacts.tel_number,
            'vk_link': contacts.vk_link,
            'telegram_link': contacts.telegram_link,
            'whatsApp_link': contacts.whatsApp_link,

            'services_objects': services_objects,
            'portfolio_objects': potrfolio_objects,

            'form': form
        }

        return render(req, 'MainTEST.html', context)

После пост запроса от формы, я хотел бы отрендерить страницу так же как функция get(), НО передать в переменную context новый ключ, содержащий ответ от сервера как прошла отправка формы и вывести на страницу. Неужто придется копировать весь код содержащийся в get() в метод post() и вернуть рендер? Или есть гуманный способ вместо дублирования?
  • Вопрос задан
  • 156 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
@javedimka
Хочу сока
Или есть гуманный способ вместо дублирования?

Ага, использовать FormView.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
Strikt Москва
от 100 000 до 180 000 ₽
ITK academy Саратов
от 75 000 ₽
Sim-Ba Pay Санкт-Петербург
от 180 000 ₽