Django-表单模板标记如何工作?

Django-表单模板标记如何工作?,django,django-forms,django-templates,Django,Django Forms,Django Templates,这是一个简单的问题,但我找不到答案。下面的示例演示如何仅使用{{form}在模板中调用表单: <form action="/your-name/" method="post"> {% csrf_token %} {{ form }} <input type="submit" value="Submit" /> </form> views.py def add_task(request): if request.method =

这是一个简单的问题,但我找不到答案。下面的示例演示如何仅使用
{{form}
在模板中调用表单:

<form action="/your-name/" method="post">
    {% csrf_token %}
    {{ form }}
    <input type="submit" value="Submit" />
</form>
views.py

def add_task(request):
    if request.method == "POST":
        return HttpResponse("works!")
url.py

url(r'^add_task/$', 'todo.views.add_task', name='add_task')
tasks.html

<form id="add_task" action="/add_task/" method="post">
    {% csrf_token %}
    {{ add_task_form }}
    <input type="submit" value="submit">
</form>

{%csrf_令牌%}
{{add_task_form}}

{{add\u task\u form}}
只是猜测。

{{form}
不是模板标记,而是上下文变量。默认情况下,
表单
实例使用该方法呈现。因此,您必须在调用中将此变量传递给模板:

我建议您仔细阅读django文档一章中表格的完整解释

<form id="add_task" action="/add_task/" method="post">
    {% csrf_token %}
    {{ add_task_form }}
    <input type="submit" value="submit">
</form>
from django.shortcuts import render

def add_task(request):
    if request.method == "POST":
        form = addtaskForm(request.POST)
        if form.is_valid():
            # do something useful and redirect
    else:
        form = addtaskForm()
    return render(request, 'tasks.html', {'add_task_form': form})