Django httpresponse использует get вместо post

Спасибо, что нашли время помочь! Я застрял на несколько часов. Я изучаю django, просматривая это фантастическое видео на youtube: https://www.youtube.com/watch?v=sm1mokevMWk&t=4252s. Я считаю, что точно скопировал код из видео, и я дважды и трижды проверил его. Тем не менее, несмотря на декларирование method = "post" в "create".html django последовательно использует ответ get. ПОЧЕМУ?!

#urls.py 
from django.urls import path
from . import views

urlpatterns = [
path('<int:id>', views.index, name='index'),
path("",views.home, name = 'home'),
path("create/", views.create, name="create"),
]





#views.py
from django.shortcuts import render
from django.http import HttpResponse, HttpResponseRedirect
from .models import ToDoList, Item
from .forms import CreateNewList



def index(response, id):
    ls = ToDoList.objects.get(id=id)
    return render(response, 'main/list.html', {"ls":ls})



def home(response):
    return render(response, "main/home.html", {})

def create(response):
    print(response.method)
    if response.method == "POST":
        form = CreateNewList(response.POST)

        if form.is_valid():
            n = form.cleaned_data['name']
            t = ToDoList(name=n)
            t.save()
            return HttpResponseRedirect("/%i" %t.id)
    else:
        form = CreateNewList()
        return render(response, "main/create.html", {"form":form})








#create.html

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

{% block title %} Create New List {% endblock %}

{% block content %}
Create Pages
<form method="post" action="/create/">
{{form.as_p}}
      <button type="submit", name ="save" >Create New</button>
</form>
{% endblock %}


#base.html
    <html>
<head>

    <title>{% block title %}Jeff's website{% endblock %}</title>
</head>

<body>
    <div id="content", name="content">
        {% block content %}
        {% endblock %}
    </div>
</body>
</html>



 #home.html
    
{% extends 'main/base.html'  %}

{% block title %}
Home
{% endblock %}


{% block content %}
<h1>Home Page</h1>
{% endblock %}



#models.py 
from django.db import models




class ToDoList(models.Model):
    name = models.CharField(max_length=200)

    def __str__(self):
        return self.name

class Item(models.Model):
    todolist = models.ForeignKey(ToDoList, on_delete=models.CASCADE)
    text = models.CharField(max_length=300)
    complete = models.BooleanField()

    def __str__(self):
        return self.text


    

Сначала вам нужно выполнить GET-запрос для отображения формы, а затем сделать post-запрос для отправки, поэтому вы проверяете метод запроса .

if response.method == "POST" => Форма уже отображается, и нам нужно ее отправить

иначе нам нужно отобразить нашу форму

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