什么是"字典式字符串格式化"用于Django RedirectView网址

时间:2013-10-25 20:44:28

标签: django

我熟悉在格式字符串中使用字典,但我对术语“字典样式字符串格式化”as it is used in Django's docs for specifying the url in a RedirectView感到困惑。

具体来说,我有一个网址:r'^(?P<school_slug>[\w-]+)/(?P<menu_type_slug>[\w-]+)/.pdf$'我不赞成并希望301(永久)重定向到新网址r'^(?P<school_slug>[\w-]+)/(?P<menu_type_slug>[\w-]+)/print/$',我想知道如何格式化redlView的url参数构造函数,以便在构造新的URL以重定向时使用url kwargs,但我不熟悉“字典样式的字符串格式”。这样做的正确语法是什么?

2 个答案:

答案 0 :(得分:1)

这是指使用%string-formatting操作符的特定方法:

print "Hello, %(thing)s!" % {"thing": "world"}

打印“Hello,world!”

你想使用像'/%(school_slug)s /%(menu_type_slug)s / print /'这样的重定向网址,重定向视图会收到一个带有'school_slug'和'menu_type_slug'键的kwargs字典,并将其用作%的参数。

答案 1 :(得分:1)

它指的是通过将字典中的条目插入字符串来格式化字符串:

>>> params = {"server":"mpilgrim", "database":"master", "uid":"sa", "pwd":"secret"}
>>> "%(pwd)s" % params                                    1
'secret'

如果我正确解释了Django文档,您只能使用它来替换{​​{1}}形式的URL查询参数。路径的组件无法替换。