位于/ errorcodes / error_codes / 2的NoReverseMatch 反向查找“ relatedpartsview”,未找到任何参数。尝试了1个模式:['errorcodes \ / error_codes \ / relatedparts \ /(?P [^ /] +)$']
当前,我正在尝试将PK作为参数传递给我的链接。但是,我一直没有反向比赛。我添加了一个重定向语句,但这似乎无法解决问题。
views.py
as.Date(aapl_earnings$Date, "%Y/%m/%d")
[1] "2018-04-30" "2018-01-31" "2017-11-01" "2017-07-31" "2017-05-01" "2017-01-30" "2016-10-24"
[8] "2016-07-25" "2016-04-25" "2016-01-25" "2015-10-26" "2015-07-20" "2015-04-26" "2015-01-26"
[15] "2014-10-19" "2014-07-21" "2014-04-22" "2014-01-26" "2013-10-27"
urls.py
class RelatedPartsListView(ListView):
context_object_name = 'related_parts_list'
model = models.ErrorCodes
template_name = 'related_parts_list.html'
def get_context_data(self, **kwargs):
# xxx will be available in the template as the related objects
context = super(ErrorCodeView, self).get_context_data(**kwargs)
context['relatedparts'] = RelatedParts.objects.filter(related_error_code=self.get_object())
return context
return redirect('RelatedPartsListView', pk='pk')
]
链接
urlpatterns = [
path(r'error_codes/',views.ErrorCodeList.as_view(), name='errorcodelist'),
path(r'error_codes/<pk>',views.ErrorCodeView.as_view(), name='errorcodeview'),
path(r'error_codes/relatedparts/<pk>',views.RelatedPartsListView.as_view(), name='relatedpartsview')
更新:我得到的“ RelatedPartsListView”对象没有属性“ get_object”
class RelatedPartsListView(ListView):
{% url 'errorcodes:relatedpartsview' %}
答案 0 :(得分:0)
您尝试使用{% url %}
的URL而不传递pk
,而该URL依赖于此。您可以在Exchangelib
因此,您应该通过上下文将对象(带有pk的对象)传递到模板。然后,您可以访问该对象的pk值。因此,您将拥有类似的东西。
{% url 'relatedpartsviewurl' obj.pk %}
编辑:您的重定向也没有任何意义,并且您有两个彼此紧接的return语句,这绝对没有意义。
编辑:好的,因此您需要在返回的重定向中使模板名称与您的name=
网址中显示的名称完全相同。接下来,您需要摆脱上下文,而是将过滤器存储为变量,例如obj
。然后,对于您的重定向中的pk
,只需引用该变量redirect('template_name', obj.pk)
编辑:基于类的视图(idk,如果可行) 您的列表视图。
class RelatedPartsListView(ListView):
context_object_name = 'related_parts_list'
model = models.ErrorCodes
template_name = 'related_parts_list.html'
def get_context_data(self, **kwargs):
context = super(RelatedPartsListView, self).get_context_data(**kwargs)
context['relatedparts'] = RelatedParts.objects.filter(related_error_code=1)
return context
以此替换相关的部分网址。
re_path(r'^error_codes/relatedparts/?P<parts_id>[0-9]+',views.RelatedPartsListView.as_view(), name='related_parts_view')
使您的链接如此。
{% url 'errorcodes:related_parts_view' 1 %}
编辑:基于功能的视图
views.py
def related_parts_view(request, error_code):
parts = RelatedParts.objects.filter(related_error_code=error_code)
context = {
'relatedparts': parts
}
return render(request, 'path/to/my/template.html', context)
urls.py
re_path(r'^error_codes/relatedparts/?P<error_code>[0-9]+', errorcodes.views.related_parts_view, name='related_parts_view')
other_template.html
<a href="{% url errorcodes:related_parts_view' error_code.pk %}">Go to Related Parts</a>
template.html
{% for part in relatedparts %}
{{ part.pk }}
{% endfor %}