1

我熟悉在格式字符串中使用字典,但我对术语“字典样式的字符串格式”感到困惑,因为它在 Django 的文档中用于指定 RedirectView 中的 url

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

4

2 回答 2

1

那是指使用 % 字符串格式化运算符的特定方式:

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

打印“你好,世界!”

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

于 2013-10-25T20:55:37.530 回答
1

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

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

如果我正确解释了 Django 文档,您只能使用它来替换 URL 查询参数,这些参数的格式为kwd=value. 路径的组件不可用于替换。

于 2013-10-25T20:55:53.210 回答