Python 在基于类的视图中获取kwargs的最佳方法?
我有一个基于类的Django视图:Python 在基于类的视图中获取kwargs的最佳方法?,python,django,Python,Django,我有一个基于类的Django视图: class LocationView(TemplateView): 我已在url调度程序中定义了一个命名参数: url(r'^locations/(?P<id>\d+)/$', LocationView.as_view(), name="location") url(r'^locations/(?P\d+/$),LocationView.as_view(),name=“location”) 我知道我可以在类方法中访问我的id参数,比如get\
class LocationView(TemplateView):
我已在url调度程序中定义了一个命名参数:
url(r'^locations/(?P<id>\d+)/$', LocationView.as_view(), name="location")
url(r'^locations/(?P\d+/$),LocationView.as_view(),name=“location”)
我知道我可以在类方法中访问我的
id
参数,比如get\u context\u data
,在这里我可以将**kwargs传递给方法本身。但是,我希望能够访问类本身中的参数,因为我从API中获取的一些数据将在整个类的不同方法中以不同的容量使用。有没有办法做到这一点 您可以在为基于类的视图调用dispatch()后运行的任何方法中执行self.kwargs
如果您正在为一个模型创建一个细节视图,就像您正在做的那样,您可能应该使用一个通用的基于类的视图来完成这项工作
你为什么不试试下面的方法呢
from django.views.generic import DetailView
class LocationView(DetailView):
queryset = LocationModel.objects.all()
template_name = 'location_of_detail_template.html'
然后更新您的URL.py文件,并将regex组的名称从id更改为pk,以使其自动工作。您可以使用在基于类的视图调用dispatch()后运行的任何方法执行
self.kwargs
如果您正在为一个模型创建一个细节视图,就像您正在做的那样,您可能应该使用一个通用的基于类的视图来完成这项工作
你为什么不试试下面的方法呢
from django.views.generic import DetailView
class LocationView(DetailView):
queryset = LocationModel.objects.all()
template_name = 'location_of_detail_template.html'
然后更新您的URL.py文件,并将regex组的名称从id更改为pk,以使其自动工作。“在类本身内部”,这是在哪里?您希望使用哪种方法访问id
?“在类本身中”,在哪里?您希望使用哪种方法访问id
?