【发布时间】:2014-02-18 22:05:09
【问题描述】:
我正在使用 Django 的 Form 类构建一个带有表单的网页。我已经包含了一些示例代码 sn-ps 但我的问题是我遵循了 Django 文档和 Djangobook 中的教程,但无法让我的表单实际显示在页面上。
forms.py
from django import forms
class ResearchForm(forms.Form):
fam_choices = ...
spec_choices = ...
family = forms.ChoiceField(choices=fam_choices, required=True)
species = forms.ChoiceField(choices=spec_choices, required=True)
views.py
from django.http import HttpResponse, HttpResponseRedirect, Http404
from django.shortcuts import render
from mysite.forms import ResearchForm
...
def research(request):
if request.method == 'GET':
form = ResearchForm(request.GET)
if form.is_valid():
f = form.cleaned_data['family']
s = form.cleaned_data['species']
return render(request, 'thankyou.html', {})
else:
form = ResearchForm() # an unbound form
return render(request, "research.html", {'form':form})
research.html
...
<form action="/research/" method="get" name="researchform">
{{ form.as_p}}
<button>Submit</button>
</form>
...
网页上仅显示按钮,ChoiceField 应呈现的 select 标记不显示。
编辑:
我将views.py 编辑为:
def research(request):
form = ResearchForm(request.GET)
if form.is_valid():
return render(request, 'thankyou.html', {})
else:
form = ResearchForm()
return render(request, 'research.html', {'form':form})
编辑 2:
urls.py
urlpatterns = patterns('',
url(r'^admin/', include(admin.site.urls)),
url(r'^', include('cms.urls')),
)
if settings.DEBUG:
urlpatterns = patterns('',
(r'^' + settings.MEDIA_URL.lstrip('/'), include('appmedia.urls')),
) + urlpatterns
【问题讨论】:
标签: django forms django-forms django-cms