Django-url不带参数接受缺省值 [英] django - url with no argument to take a default value

查看:19
本文介绍了Django-url不带参数接受缺省值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

假设这是一个url,它接受一个参数(这里是book_id)并将值传递给views

url(r'^/(?P<book_id>w+)/$', 'pro.views.book', name='book'),

URL是否可以接受参数,但如果没有给定参数,则采用缺省值。如果可能,也可能在views中。如果这是一个蹩脚的问题,我很抱歉,但我真的需要知道。任何帮助或建议都将不胜感激。谢谢您

推荐答案

将捕获模式设置为可选,并记住适当地处理尾随斜杠。我会在捕获组周围找一个非捕获组,这是最安全的方法:

url(r'^(?:(?P<book_id>w+)/)?$', 'pro.views.book', name='book'),

然后在视图中声明参数的默认值:

def book(request, book_id='default'):

如果您觉得URL模式难看,可以将两个regexp绑定到同一个视图函数:

url(r'^(?P<book_id>w+)/$', 'pro.views.book', name='book'),
url(r'^$', 'pro.views.book', name='default_book'),

按照Alasdair的提示,我删除了前导斜杠。我觉得这看起来很奇怪。

这篇关于Django-url不带参数接受缺省值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆