簡體   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