我想用Django编写通用视图,在这个函数中,我想处理几种情况:首先,当我有像vkusers3/11122233/1/2 /的网址,并且我也想要它在url中缺少2或第三个参数时工作,如:vkusers3/11122233 /或vkusers3/11122233/1/Django的意见与任意数量的url参数
我无法找到它教程如何做到这一点(https://docs.djangoproject.com/en/1.6/topics/http/urls/等)。 这个问题,当你在url参数中有5个以上的组合时,这变成了一场噩梦,那么你应该写5个不同的url配置,5次在html模板硬编码这个模式。
但是等等,甚至更多!关于combinatorics:我想要/用户/组/性别/吸烟/而且我想要/用户/组/抽烟/即所有用户谁是抽烟的男人和女人。所以这个数字是巨大的。
def list_groupmembers_sex(request, group_id, sex=None, smoking=None):
success = False
if group_id and sex and smoking==None:
vkusers = Vkuser._get_collection().find({"member_of_group": int(group_id), 'sex': int(sex)})# 62740364 81099158
success = True
elif group_id and sex and smoking!=None:
vkusers = Vkuser._get_collection().find({"member_of_group": int(group_id), 'sex': int(sex), 'personal.smoking': int(smoking)})
success = True
else:
vkusers = Vkuser._get_collection().find({'personal.smoking': 1})
ctx = {'vkuser_list': vkusers, 'group_id': group_id, 'sex': sex, 'smoking':smoking, 'success': success}
return render_to_response('blog/vkuser_list.html', ctx, context_instance = RequestContext(request))
在我的urls.py:
url(r'^vkusers3/(\d{1,8})/(\d{1})/(\d{1})/$', 'blog.views.list_groupmembers_sex', name='vkuser-list3'),
在我base.html文件:
<li class="menu-level-1"><a href="{% url 'vkuser-list3' group_id sex smoking %}">users</a></li>
Django的1.6.10,MongoDB的2.7.1,mongoengine
是,这个作品! thanx,令人惊讶的是我用self.request.GET,但不知道如何获取参数 – 2015-03-02 16:49:23