представление не возвращало объект HttpResponse.Не вернулся - PullRequest
0 голосов
/ 28 января 2019

Для тестирования моей формы loggin, в индексе просмотра я возвращаю словарь.Когда я нажимаю кнопку отправки, я получаю сообщение об ошибке:

The view accueil.views.index didn't return an HttpResponse object. It returned None instead.

Где я допустил ошибку?

def index(request):
formConnex = ConnexionForm()
if request.method=='POST':
    formConnex =ConnexionForm(request.POST)
    if formConnex.is_valid():
        envoi = True
        surnom = formConnex.cleaned_data['surnom']
        password = formConnex.cleaned_data['passeword']
        formConnex = ConnexionForm()   
        dicInfoCon =    {
            'surnom_key':email,
            'password_key':password,
            'envoi_key':envoi
        }

        return render(request,'accueil/index.html',dicInfoCon)
else:
    envoi = False
    formConnex = ConnexionForm() 
    return render(request, 'accueil/index.html', 'formConnex_Key':formConnex})

Ответы [ 2 ]

0 голосов
/ 28 января 2019

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

0 голосов
/ 28 января 2019

Проблема в том, что форма недействительна.Он не возвращает ничего из функции.Чтобы быть точным:

if request.method=='POST':
    formConnex =ConnexionForm(request.POST)  # Please use snake_case
    if formConnex.is_valid():
        envoi = True
        surnom = formConnex.cleaned_data['surnom']
        password = formConnex.cleaned_data['passeword']
        formConnex = ConnexionForm()   
        dicInfoCon = {
            'surnom_key':email,
            'password_key':password,
            'envoi_key':envoi
        }

        return render(request,'accueil/index.html',dicInfoCon)
  # Here should be an else block with how the view should handle if the form is not valid

Итак, вы можете обновить метод следующим образом (я добавил рефакторинг):

def index(request):
    formConnex = ConnexionForm(request.POST or None) # Please use snake_case, according to PEP-8 style guide
    if request.method == 'POST':
        if formConnex.is_valid():
            envoi = True
            surnom = formConnex.cleaned_data['surnom']
            password = formConnex.cleaned_data['passeword']
            dicInfoCon = {
                'surnom_key': email,
                'password_key': password,
                'envoi_key': envoi
            }
            return render(request, 'accueil/index.html', dicInfoCon)

    return render(request, 'accueil/index.html', {'formConnex_Key':formConnex})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...