Django-url不带参数接受缺省值 [英] django - url with no argument to take a default value
本文介绍了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屋!
查看全文