我熟悉在格式字符串中使用字典,但我对术语“字典样式字符串格式化”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,但我不熟悉“字典样式的字符串格式”。这样做的正确语法是什么?
答案 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查询参数。路径的组件无法替换。