django模板和request.GET参数处理问题(求助)
各位,新学习python和django。遇到问题求助。
python:2.7.2
django:1.9.4
模板:
<form method="get" action=".">
<tr><td>
<select name="Aid" id="Aid">
<option value="">请选择</option>
{% for AA in Aname %}
<option value="{{ AA.Aid }}">{{ AA.aname }}</option>
{% endfor %}
</select>
</td>
<td>
<select name="Bid" id="Bid">
<option value="">请选择</option>
{% for BB in Bname %}
<option value="{{ BB.Bid }}">{{ BB.bname }}</option>
{% endfor %}
</select>
</td>
<td>
<select name="Cid" id="Cid">
<option value="">请选择</option>
{% for CC in Cname %}
<option value="{{ CC.Cid }}">{{ CC.cname }}</option>
{% endfor %}
</select>
</td>
<td> </td><td><input type="submit" value="Submit"></td>
</tr>
</form>
views.py:
def getKwargs(data={}):
kwargs = {}
for (k,v) in data.items():
if v is not None and v != u'':
kwargs[k] = v
return kwargs
def testlist(request):
kwargs = {}
if request.method == 'GET':
qy = getKwargs(request.GET)
qfilter = Test.object.all()
if kwargs is not None:
qfilter = qfilter.filter(**kwargs)
这样方式,在有GET参数传过来时,不能按需要过滤出想要的数据。
尝试打印request.GET参数,如QueryDict: {u'Aid': [u''], u'Bid': [u'59'], u'Cid': [u'']}
实际想要的效果是Bid=59时,传给filter。
但直
Aid = request.GET.get("Aid")
if Aid is not None and Aid != u'':
kwargs['Aid'] = Aid
if Bid is not None and Bid != u'':
kwargs['Bid'] = Bid
这样再把kwargs传给filter就能得出想要的数据。
不知道哪里出了问题,请高手指教。谢谢