Django:包含pk路径

时间:2019-05-14 19:26:07

标签: django path django-views

我正在开发一个使用上下文处理器的应用程序,只有当它不属于以下指定的任何路径时,才会执行上下文处理器中的功能:

if request.path != "/details/" and \
            request.path != "/live/":
     # EXECUTE FUNCTIONS

但是,我没有设法包含一个包含pk的路径。我尝试了以下操作:request.path != "/live/<int:pk>没有结果。有什么想法吗?

谢谢!

2 个答案:

答案 0 :(得分:0)

非常基本的例子,但是我会做这样的事情。我会创建一个URL路径列表,并检查urls列表中的request.path。我不确定是否可以在上下文处理器中传递pk。另一种方法是编写自定义模板标签。

from django.urls import reverse

urls = [reverse("home"), reverse("detail",kwargs={"pk":pk})]

if request.path not in ulrs:
   some code

答案 1 :(得分:0)

我刚完成以下操作:

+    if request.path != "/backtest/details/" and \
+            request.path != "/live/details/" and \
+            request.path[-7:] != "delete/" and \
+            request.user.is_authenticated:

因此,只需查看路径的最后一个字符即可。