Задать вопрос
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() и вернуть рендер? Или есть гуманный способ вместо дублирования?
  • Вопрос задан
  • 149 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
@javedimka
Хочу сока
Или есть гуманный способ вместо дублирования?

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

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

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