请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

get多参数请求的问题

问题一:例如下面这个链接地址,类别选的是全部,生成的url结果里面ct为空,既然ct为空为什么会显示所有的机构呢?
http://127.0.0.1:8000/org_list?city=1&ct=
下面代码中不是要category存在才会filter吗?

# 类别筛选
category = request.GET.get('ct', '')
    if category:
       all_orgs = all_orgs.filter(category=category)

问题二:另外还是这个url,是django自动的做了一个数据库的联合查询吗?可以解释一下吗?
http://127.0.0.1:8000/org_list?city=1&ct=ge

正在回答 回答被采纳积分+3

1回答

bobby 2018-10-10 09:58:08

ct为空的意思是默认选择所有数据,当然你也可以传递all也行,这个完全是个人爱好,很多大型网站都会这样传空值表示所有,代码中的筛选逻辑的意思不是说必须存在才会为获取所有数据,这里面两种情况都会获取所有数据,第一:如果url中没有ct这个参数, 第二 有参数但是参数为空 这两种情况都会获取所有数据

0 回复 有任何疑惑可以回复我~
  • 提问者 大副大 #1
    这部分了解了。
    那url里面2个参数甚至3个参数django是怎么处理的呢,url配置里面并没有相应的模式匹配,为什么不会报错呢?
    回复 有任何疑惑可以回复我~ 2018-10-10 22:53:45
  • bobby 回复 提问者 大副大 #2
    url的模式只会匹配url的主要, 至于参数模式和url无关,只是参数而已,这个在web框架中都是一样的,参数不应该属于url路径
    回复 有任何疑惑可以回复我~ 2018-10-12 14:04:42
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信