简体   繁体   English

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

[英]How to pass a parameter to Class based views in Django?

how to pass this parameter in the class called?如何在调用的class 中传递这个参数?

This is url这是 url

#url
path('all-agency/<int:id>', AllAgenciesView.as_view(), name='all-agency'),

cbv 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

this is in template这是在模板中

#in anchor tag(html)
<a href="{% url 'all-agency' id=2 %}" ><div>Agencies</div></a>

in address bar it would look like this:在地址栏中,它看起来像这样:

http://127.0.0.1:8000/all-agency/2

Now I want to pass the 'id' into the class based views but when i did filter(id=self.kwargs['id') .现在我想将“id”传递到基于 class 的视图中,但是当我filter(id=self.kwargs['id')时。 I Got returned KeyError: 'id'我得到了返回KeyError: 'id'

i tried another way which is我尝试了另一种方式

filter(id=self.kwargs.get('id')) 

and it returned None when i print(agencies)当我print(agencies)时它返回None (代理)

another way ive tried我试过的另一种方法

filter(id=self.request.GET.get('id'))

this also returned the same None这也返回了相同的None

You're calling the wrong view in your paths, you should call AllAgenciesListView instead of AllAgenciesView .您在路径中调用了错误的视图,您应该调用AllAgenciesListView而不是AllAgenciesView

Corrected version:修正版:

#url
path('all-agency/<int:id>', AllAgenciesListView.as_view(), name='all-agency'),

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Django 如何在基于 class 的视图中传递自定义错误消息 - Django how to pass custom error message in class based views 如何在django的基于类的视图中将值传递给模板? - How to pass a value to the template in class based views in django? 如何将数据库查询集对象从基于类的视图(类 SignUp(generic.CreateView))传递到 Django 中的模板 - How to pass database queryset objects from class based views(class SignUp(generic.CreateView)) to templates in Django 基于Django类的视图 - Django class based views 在基于Django类的视图中检查视图方法参数名称 - Check view method parameter name in Django class based views 如何将数据库查询集对象从基于类的视图传递到 Django 2.0 中的模板 - How to pass database queryset objects from class based views to templates in Django 2.0 如何将 url 参数传递到视图中以供其他类函数和模板使用 - How to pass a url parameter into the views to be used by other class functions and the template 基于Django类的视图和查询 - Django Class Based Views and Queries Django 中基于异步 Class 的视图 - Async Class Based Views in Django 如何使用Django中基于类的通用视图将父ID作为fk传递给子对象的ModelForm? - How do I pass a parent id as an fk to child object's ModelForm using generic class-based views in Django?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM