2
在Django的urls.py中,我知道您可以指定一個可選參數以傳遞給單個url()對象的視圖。我的問題是,是否可以指定相同的可選參數,並將其應用於patterns()對象內的每個url()。在模式()中的每個url()的Django可選url參數()
在Django的urls.py中,我知道您可以指定一個可選參數以傳遞給單個url()對象的視圖。我的問題是,是否可以指定相同的可選參數,並將其應用於patterns()對象內的每個url()。在模式()中的每個url()的Django可選url參數()
我不這麼認爲,但你完全可以使用一個變量:如果您希望能夠將值添加到在運行某些URL
d = { 'foo' : very_long_value }
urlpatterns = patterns('',
url('^aaaa/$', 'aaa', d),
url('^bbbb/$', 'bbb', d),
url('^cccc/$', 'ccc', d),
)
,你可以做到以下幾點:
def add_dict(d, **kw):
x = d.copy()
x.update(kw)
return x
d = { 'foo' : very_long_argument }
urlpatterns = patterns('',
url('^aaaa/$', 'aaa', d),
url('^bbbb/$', 'bbb', d),
url('^cccc/$', 'ccc', add_dict(d, bar = 'xxx')),
)
或者你也可以寫自己的url
包裝:
def my_url(regex, view, kwargs=None, name=None, prefix=''):
if kwargs is None:
kwargs = {}
kwargs.update(foo = very_long_argument)
return url(regex, view, kwargs, name, prefix)
urlpatterns = patterns('',
my_url('^aaaa/$', 'aaa'),
my_url('^bbbb/$', 'bbb'),
my_url('^cccc/$', 'ccc' { 'bar' : 'xxx'),
)
我沒有試過,但你可以令狀e「包含」的裝飾器:http://djangosnippets.org/snippets/2532/,以便包含的url模式中的每個條目都帶有您想要傳遞的可選參數 – 2012-08-04 22:38:46