我有这个添加页面,它使用 django 表单来获取我试图存储在“任务”列表中并显示在待办事项 html 页面中的信息。 我相信我的所有语法都是正确的,但是当我提交表单时它没有显示任务列表。
在 cmd 上,每次我提交表单时它都会检测到 GET 请求,不应该是说 post 吗?
观看次数:
from django.shortcuts import render
from django import forms
tasks = []
class newTaskForm(forms.Form):
task = forms.CharField(label="new task")
# Create your views here.
def index(request):
return render(request, "tasks/todo.html", {
"tasks": tasks
})
def add(request):
if request.method == "POST":
form = newTaskForm(request.POST)
if form.is_valid():
task = form.cleaned_data["task"]
tasks.append(task)
else:
return render(request, "tasks/add.html", {
"form": form
})
return render(request, "tasks/add.html", {
"form": newTaskForm
})
添加:
{% extends "tasks/layout.html" %}
{% block body %}
<form action="{% url 'tasks:add' %}">
{% csrf_token %}
{{ form }}
<input type="submit">
</form>
<a href="{% url 'tasks:home' %}">Veiw list</a>
{% endblock %}
待办事项:
{% extends "tasks/layout.html" %}
{% block body %}
<h1> To Do List</h1>
<ul>
{% for task in tasks %}
<li> {{ task }}</li>
{% endfor %}
</ul>
<a href="{% url 'tasks:add' %}">Add items</a>
{% endblock %}
答案 0 :(得分:2)
按照@Iain Shelvington的建议,您需要将method="post"
设为
{% block body %}
<form method="post" action="{% url 'tasks:add' %}">
{% csrf_token %}
{{ form }}
<input type="submit">
</form>
<a href="{% url 'tasks:home' %}">Veiw list</a>
{% endblock %}