Django表单提交按钮

The*_*i.9 7 python django django-forms

我在django中有一个非常简单的文件上传表单类:

class UploadFileForm(forms.Form):
    category = forms.ChoiceField(get_category_list())
    file = forms.FileField()
Run Code Online (Sandbox Code Playgroud)

一个问题是,当我这样做时{{ form.as_p }},它没有提交按钮.我如何添加一个?

Ign*_*ams 9

<input type="submit" value="Gogogo!" />
Run Code Online (Sandbox Code Playgroud)

  • 尽管这是幽默的,但这不是一个非常完整的答案.将它放在`{{form.as_p}}`下面,然后用`</ form>`关闭它. (14认同)

xjc*_*jcl 6

这是一个最小 HTML 表单的模板(文档):

<form method="post">
    {% csrf_token %}
    {{ form.as_p }}
    <input type="submit" value="Submit">
</form>
Run Code Online (Sandbox Code Playgroud)

将其放在下面<PROJECT>/templates/MyForm.html,然后替换'DIRS': []<PROJECT>/<PROJECT>/settings.py以下内容:

        'DIRS': [os.path.join(BASE_DIR, "templates")],
Run Code Online (Sandbox Code Playgroud)

然后,当用户发出 GET 请求时,可以使用这样的代码向用户提供表单,并在用户通过单击提交按钮(文档)发布表单时处理表单:

from django.http import HttpResponse, HttpResponseNotFound
from django.shortcuts import render
from . import forms

def my_form(request):
    if request.method == 'POST':
        form = forms.MyForm(request.POST)
        if form.is_valid():
            return HttpResponse('Yay valid')
    else:
        form = forms.MyForm()

    return render(request, 'MyForm.html', {'form': form})
Run Code Online (Sandbox Code Playgroud)