python - 如何在 Django 中将 object_id 传递给通用 View object_detail

标签 python regex django django-urls

我正在使用 django.views.generic.list_detail.object_detail。

根据文档, View 采用变量 object_id。为此,我将以下内容添加到我的 urlconf 中:

(r'^(?P<object_id>\d+)$', list_detail.object_detail, article_info),

上面的行位于一个单独的 urlconf 中,该 urlconf 包含在主 urlconf 中。

如果我将“^”字符留在模式的开头,然后尝试转到地址:

.../?object_id=1

它不起作用。如果我删除“^”字符,则地址:

.../?object_id=1

还是不行。但是如果我使用:

.../object_id=1(不带问号)

该 View 接受 object_id 变量并且可以正常工作。我对此有两个问题。

第一:包含的 urlconf 中的“^”字符可以用于限制模式仅匹配基本 url 模式加上包含的 urlconf 中 ^$ 之间的确切字符串吗?

第二:为什么问号字符会阻止 View 接收“object_id”变量?我以为是“?”用于指定 URL 中的 GET 变量。

谢谢

最佳答案

我先解决你的第二个问题。此上下文中的 ? 字符用于表示正则表达式中的命名组。这是 regular expressions provided by Python 的自定义扩展。 (有关示例,请参阅 howto)

要传递object_id,请将其附加到URL(根据您的情况)。像这样:../foo/app/3,其中3object_id

关于python - 如何在 Django 中将 object_id 传递给通用 View object_detail,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3467121/

相关文章:

python - 将 TXT 加载到 postgres 数据库中,将不存在的列填充为 null

python - IOError : [Errno 13] Permission denied when trying to open hidden file in "w" mode

python - 除了引号内的逗号外,如何在 Python 中拆分逗号分隔的字符串

javascript - 正则表达式 Javascript 捕获字符串

django - 使用 django 作为 ionic 应用程序后端时出现 CORS 错误

python - 将回归树输出转换为 Pandas 表

python - 为什么不能 select.select() 捕获关闭的套接字错误?

regex - 美国州正则表达式,区分大小写

django - 为什么 Django Crispy Forms 抛出 "module ' django.forms.forms' has no attribute 'BoundField' "

python - 迁移与 forms.py 冲突