[英]How to pass a parameter to Class based views in Django?
如何在调用的class 中传递这个参数?
这是 url
#url
path('all-agency/<int:id>', AllAgenciesView.as_view(), name='all-agency'),
CBV
#views
class AllAgenciesView( TemplateView):
template_name='agencies.html'
class AllAgenciesListView(ServerSideDatatableView):
def get_queryset(self):
agencies = SettingsAgency.objects.using('agency-namespace').filter(id=self.kwargs['id'])
return agencies
这是在模板中
#in anchor tag(html)
<a href="{% url 'all-agency' id=2 %}" ><div>Agencies</div></a>
在地址栏中,它看起来像这样:
http://127.0.0.1:8000/all-agency/2
现在我想将“id”传递到基于 class 的视图中,但是当我filter(id=self.kwargs['id')
时。 我得到了返回KeyError: 'id'
我尝试了另一种方式
filter(id=self.kwargs.get('id'))
当我print(agencies)
时它返回None
(代理)
我试过的另一种方法
filter(id=self.request.GET.get('id'))
这也返回了相同的None
您在路径中调用了错误的视图,您应该调用AllAgenciesListView
而不是AllAgenciesView
。
修正版:
#url
path('all-agency/<int:id>', AllAgenciesListView.as_view(), name='all-agency'),
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.