【发布时间】:2014-06-19 14:42:03
【问题描述】:
我是 Django 的新手,我试图从索引页面的下拉菜单中获取用户选择的值,并在文档列表页面中使用它。我正在尝试在文档列表页面上打印该值,但它似乎没有打印任何内容。我不确定这是否可能。任何帮助将非常感激。
这是我的下拉表单的索引模板
<div class="signup">
<div class="form-group">
<form action="/doclistings/" method="post" >{% csrf_token %}
<select class="form-control" id="s1" name="selection">
<option><b>Find a Doctor...</b></option>
{% for value, text in form.selection.field.choices %}
<option value="{{ value }}">{{ text }}</option>
{% endfor %}
</select>
<button class="btn btn-primary" type="submit" name="submit" id="ss-submit">Find Doctors</button>
这里是 doclisting 模板,我正在尝试从选择中打印值
<h2>{{selection}}</h2>
这里是views.py中的index方法
def index(request):
d = getVariables(request,dictionary={'page_name': "Home"})
if request.method == "POST":
form = DropdownSelectionForm(request.POST)
if form.is_valid():
selection = form.cleaned_data['selection']
return HttpResponseRedirect('/doclistings', 'selection')
else:
form = DropdownSelectionForm()
return render(request, 'meddy1/index.html', {'form': form})
这里是views.py中的doclisting方法
def doclistings(request):
d = getVariables(request)
doctors = Doctor.objects.all().order_by('-likes')
paginator = Paginator(doctors, 20) #Show 20 doctors per page
page = page = request.GET.get('page')
try:
doctors = paginator.page(page)
except PageNotAnInteger:
doctors = paginator.page(1)
except EmptyPage:
doctors = paginator.page(paginator.num_pages)
d['doctors'] = doctors
d['paginator'] = paginator
return render_to_response('meddy1/doclistings.html',d)
forms.py
MY_CHOICES = (
('Dermatologist', 'Dermatologist'),
('Dentist', 'Dentist'),
('Opthalmologist', 'Opthalmologist'),
)
class DropdownSelectionForm(forms.Form):
selection = forms.ChoiceField(choices=MY_CHOICES, widget = forms.Select)
urls.py
url(r'^index/$', views.index, name='index'),
url(r'^doclistings/$', views.doclistings, name='doclistings'),
【问题讨论】:
-
你能给我看看 urls.py 文件和 DropdownSelectionForm 模型吗?
-
我已经添加了 urls.py 和表单
-
但是您正在将
selection.save()的内容保存到数据库中。型号名称是什么。 -
我实际上并没有将选择保存到我的数据库中。我不知道为什么我有它。我只是在尝试让它发挥作用。
标签: python django drop-down-menu views