我正在使用django-viewflow应用程序,其中有一个自定义视图表示库存项目记录,其中有许多工作流可以附加到记录(注册/发布/处置等)。在记录的详细信息视图中,我希望有一个附加到项目的所有工作流的列表,并能够列出与该工作流相关的所有任务。
我的目标是一个URL,看起来像
- .../asset/3/ -用于详细视图
- .../asset/3/register/93/ -用于注册过程(以及后续任务)
- .../asset/3/movement/1/ -用于移动流程(和后续任务)
- 等等
我的应用程序url.py看起来像:
asset_urls = FlowViewSet(AssetFlow).urls
movement_urls = FlowViewSet(MovementFlow).urls
app_name = 'asset'
workflowurlpatterns = [
# path('ajax/load-budget_lines/', views.load_budget_lines, name='ajax_load_budget_lines'),
path('viewflow/', include((asset_urls, 'asset'))),
path('movement/', include((movement_urls, 'movement'))),
# path('', views.Detail.as_view(), name='detail'),
]
urlpatterns = [
path('', views.List.as_view(), name='assets'),
path('<int:asset_pk>/', views.Detail.as_view(), name='detail'),
path('<int:asset_pk>/', include((workflowurlpatterns)))
]
问题是模板标记{% flowurl task user=request.user as task_url %}
生成的所有URL都失败,并出现NoReverseMatch错误。
有没有一个聪明的方法来传递asset_id,这样URL就可以工作了(或者另一种解决方案)?
我得到的错误的一个例子是
Reverse for 'finance_tc' with keyword arguments '{'process_pk': 93, 'task_pk': 411}' not found. 1 pattern(s) tried: ['asset/(?P<asset_pk>[0-9]+)/register/(?P<process_pk>\\d+)/finance_tc/(?P<task_pk>\\d+)/$']
2条答案
按热度按时间q5iwbnjs1#
如果你在Django项目中使用URL命名空间,请确保在使用template标签时指定正确的命名空间。命名空间使用**”www.example.com“文件中的“app_name”属性定义urls.py,可以在模板标签中引用为“namespace:url_name”**。
0ve6wy6x2#
试试下面的代码
在django模板中使用