Django-HttpResponse возвращает None

Я получаю ошибку при запуске моего проекта:

ValueError: The view ... didn't return an HttpResponse object. It returned None instead.

Я видел другие подобные вопросы, но их ответы, похоже, не работают. В других моих проектах тот же код работал.

Я искал в сети несколько дней, но мне не повезло.

views.py -

from .models import create_message
from .forms import MessageForm
from django.http import HttpResponseRedirect

def create_message(request):
    submitted = False
    if request.method == "POST":
        form = MessageForm(request.POST)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect('/create_message?submitted=True')
        else:
            form = MessageForm
            if 'submitted' in request.GET:
                submitted = True            
        return render(request, 'send/create_message.html', {'form': form, 'submitted': submitted})

forms.py -

from django.forms import ModelForm
from .models import create_message

class MessageForm(ModelForm):
    class Meta:
        model = create_message
        fields = ('message', 'app_name', 'time')
        labels = {
            'message': 'Message',
            'app_name': 'App',
            'time': 'Time',
                 }
        widgets = { 
            'message': forms.TextInput(attrs={'class':'form-control', 'placeholder': 'Message'}),
            'app_name': forms.Select(attrs={'class':'form-select', 'placeholder': 'App'}),
            'time': forms.TextInput(attrs={'class':'form-control', 'placeholder': 'Hours : Minutes : Seconds  /  Hours : Minutes : 00(ZERO ZERO)'}),
                  }

models.py -

from django.db import models

class create_message(models.Model):
    message = models.TextField(blank=False, null=False)
    time = models.TimeField(blank=False, null=False)

    def __str__(self):
        return self.time

create_message.html

{% extends 'send/base.html' %}

{% block content %}
    {% if submitted %}
        Submitted
    {% else %}
        <form action="" method=POST>

            {% csrf_token %}

            {{ form.as_p }}

            <input type="submit" value="Submit" class="btn btn-secondary">
            
        </form>
    {% endif %}
        

{% endblock %}

Я только начинаю, поэтому может быть несколько ошибок... Заранее спасибо за любую помощь :)

Небольшое уточнение: вы пытаетесь сделать GET запрос или POST запрос, когда получаете эту ошибку?

Похоже, что функция create_message обрабатывает только POST-запросы и не возвращает ответ для GET-запросов

В зависимости от вашего предполагаемого поведения вы можете рассмотреть возможность разгруппировки этого утверждения:

        return render(request, 'send/create_message.html', {'form': form, 'submitted': submitted})

или добавление еще одной ветви верхнего уровня else if для обработки случая запроса GET

Вы можете посмотреть этот вопрос для соответствующего примера

Вернуться на верх