Python 如何将上下文对象作为Django url模板标记参数传递

Python 如何将上下文对象作为Django url模板标记参数传递,python,django,templates,Python,Django,Templates,在我的django项目中,我有两个模型类——Category和Action。类别是行动的外键(所有行动都属于一个类别) 在django模板中,我希望能够将上下文对象传递到{%url%}标记中,该标记接受包含类别名称的字符串作为参数。因此,在一个完美的世界中,我的django模板会有这样一行: 当提交时,Django将遵循如下格式: url(r'^(?p\w+),views.actions,name='actions'), 但不幸的是,我无法将模板过滤器嵌套到模板标记中。在url标记中引用Dja

在我的django项目中,我有两个模型类——Category和Action。类别是行动的外键(所有行动都属于一个类别)

在django模板中,我希望能够将上下文对象传递到{%url%}标记中,该标记接受包含类别名称的字符串作为参数。因此,在一个完美的世界中,我的django模板会有这样一行:

当提交时,Django将遵循如下格式:

url(r'^(?p\w+),views.actions,name='actions'),


但不幸的是,我无法将模板过滤器嵌套到模板标记中。在url标记中引用Django对象的ForeignKey的另一种方法是什么?或者是另一种构造代码的方式?

上下文变量可直接用于:


上下文变量可直接用于:



您有什么问题,需要向url中传递一个字符串,该字符串是该类别对象的名称??是吗?是的,没错。问题是,因为它是一个django模板,可以跨多个类别使用,所以字符串不能硬编码(例如,我不能将{Category}放在'Category_One'中,因为如果我试图访问'Category_Two',它将不起作用)这个问题经常出现,我不明白为什么人们认为需要在模板标记中使用变量语法。甚至有几个直接使用变量的例子。在我的项目中,在某个操作的详细信息页面中有一个按钮,该按钮使用该类别中另一个随机选择的操作的详细信息页面刷新页面。最初,传入筛选器是我能找到的唯一方法,可以使该按钮返回相同类别的另一个操作,无论您当前在哪个详细信息页面上。您有什么问题,您需要向url传递一个字符串,该字符串是该类别对象的名称??是吗?是的,没错。问题是,因为它是一个django模板,可以跨多个类别使用,所以字符串不能硬编码(例如,我不能将{Category}放在'Category_One'中,因为如果我试图访问'Category_Two',它将不起作用)这个问题经常出现,我不明白为什么人们认为需要在模板标记中使用变量语法。甚至有几个直接使用变量的例子。在我的项目中,在某个操作的详细信息页面中有一个按钮,该按钮使用该类别中另一个随机选择的操作的详细信息页面刷新页面。最初,传递过滤器是我能找到的唯一让按钮返回相同类别的另一个动作的方法,无论您当前在哪个详细信息页面上。谢谢!这个响应使我意识到代码中的另一个错误(我将QuerySet而不是实际对象传递到变量类别中)。结合使用这种语法解决了这个问题!非常感谢。这个响应使我意识到代码中的另一个错误(我将QuerySet而不是实际对象传递到变量类别中)。结合使用这种语法解决了这个问题!
<form action="{% url 'actions' category_name=category %}">