Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在基于类的视图中获取kwargs的最佳方法?_Python_Django - Fatal编程技术网

Python 在基于类的视图中获取kwargs的最佳方法?

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\

我有一个基于类的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\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