繁体   English   中英

如何将参数传递给 Django 中基于 Class 的视图?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM