【发布时间】:2018-01-13 17:11:51
【问题描述】:
我有一个带有某些值的 HTML 下拉列表,我想将这些值传递给我的通用视图,以便返回过滤后的列表。
班级:
class filteredListView(generic.ListView):
template_name = 'guestlist/guestlist.html'
def get_queryset(self, **kwargs):
relation = kwargs.get('relation', None)
if relation == 'all':
return Guest.objects.all()
if relation == 'grooms_side':
return Guest.objects.filter(grooms_side=True)
if relation == 'brides_side':
return Guest.objects.filter(brides_side=True)
if relation == 'friends':
return Guest.objects.filter(friends=True)
html 块:
<th colspan="4">
<label>Filter by Relation
<select onchange="location='filtered'">
<option value="all">All</option>
<option value="grooms_side">Groom's Side</option>
<option value="brides_side">Brides's Side</option>
<option value="friends">Friends</option>
</select>
</label>
</th>
我尝试像常规视图一样使用普通的 href 传递值,但这给了我一个 NoReverseMatch 异常。
urls.py:
from django.conf.urls import url
from . import views
app_name = 'guestlist'
urlpatterns = [
# /guestlist/
url(r'^$', views.indexView.as_view(), name='index'),
# /guestlist/
url(r'^guestlist/$', views.guestListView.as_view(), name='guestlist'),
# /guestlist/add
url(r'^guestlist/add/$', views.guestCreate.as_view(), name='add'),
# /guestlist/filtered
url(r'^guestlist/filtered$', views.filteredListView.as_view(), {'relation': 'relation'}, name='filtered'),
]
我的问题是如何将下拉列表选项中的值传递给视图。 谢谢。
编辑:我根据其中一个答案更改了一些内容,但问题仍然存在。我应该在urls.py 的字典中输入什么来传递值?
【问题讨论】:
标签: python html django listview