Django: не возвращает ошибку объекта HttpResponse - PullRequest
0 голосов
/ 13 марта 2019

Я пытаюсь создать форму Post, но HttPResponse происходит. В моем коде есть метод перенаправления, и я думаю, что он рассматривается как httpresponse, не так ли?

Я просто начинающий, поэтому, если бы кто-то мог найти легкую ошибку, я был бы признателен

from django.shortcuts import render,redirect
from .forms import DayCreateForm


def index(request):
    return render(request,'diary/day_list.html')


def add(request):

    form = DayCreateForm(request.POST or None)


    if request.method == 'POST'and form.is_valid():
        form.save()
        return redirect('diary:index')

        context ={
         'form':form
        }
        return render(request,'diary/day_form.html',context)

Ответы [ 2 ]

2 голосов
/ 13 марта 2019

Вы не возвращаете HTTP-ответ, если запрошенный метод отличается от HTTP POST. Итак, попробуйте приведенный ниже фрагмент

from django.http.response import HttpResponse


def add(request):
    if request.method == 'POST':
        form = DayCreateForm(request.POST or None)
        if form.is_valid():
            form.save()
            return redirect('diary:index')
        else:
            return HttpResponse("form is not valid")
    else:
        form = DayCreateForm()
        context = {
            'form': form
        }
        return render(request, 'diary/day_form.html', context)
1 голос
/ 13 марта 2019

В вашем коде нет возврата HttpResponse, если request.method не POST, поэтому попробуйте добавить возврат HttpResponse в случае 'not Post'.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...