Django文档中指定了as_view
方法
class-based-views
as_view()类方法创建类的实例并调用其dispatch()方法。
我尝试打印实例。 例如:
# urls.py
from django.conf.urls import url
from myapp.views import MyView
urlpatterns = [
url(r'^about/$', MyView.as_view()),
]
#views.py
from django.http import HttpResponse
from django.views import View
class MyView(View):
def get(self, request):
# <view logic>
return HttpResponse('result')
我向print
添加了views.py
语句:
class MyView(View):
print(self)
def get(self, request):
# <view logic>
return HttpResponse('result')
报告NameError
。
如何打印由班级&#39;查看&#39;?
创建的实例答案 0 :(得分:8)
您可以使用视图的clearList() {
let localBucketsArray = [...this.state.buckets];
map(localBucketsArray, function(bucket,key){
bucket.checked = false;
})
this.setState({buckets: localBuckets})
}
或__repr__
方法(这些方法默认由每个python类继承)。有两个选项:
获取表示(__str__
你得到它吗?:D)每次调用REST方法时:
__repr__
或在class MyView(View):
def get(self, request):
# <view logic>
print(self.__repr__())
return HttpResponse(result)
:
HttpResponse
每次实例化时获取类的表示形式:
class MyView(View):
def get(self, request):
# <view logic>
result['self_repr'] = self.__repr__()
return HttpResponse(result)
最终结果将是这样的:
class MyView(View):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
print(self.__repr__())
这不是很有帮助。您可以覆盖<my_app.views.MyView object at 0x7f63b5e05668>
方法以返回更具体的内容,但这取决于您!
答案 1 :(得分:3)
您正试图访问其范围之外的自我
class MyView(View):
def __init__(self, *args, **kwargs):
super(MyView, self).__init__(*args, **kwargs)
print self
def get(self, request):
# <view logic>
return HttpResponse('result')
答案 2 :(得分:1)
这样的东西不会像以下那样有用:
<app.views.MyView object at 0x000001720304E128>
当然,你可以通过定义:
来改善它def __str__(self):
return self.attibutehere
但是我觉得你正在寻找班级的实施细节。这是通过一个名为“内省”的过程完成的。
作为其他强大命令中的一个示例,有一个dir()命令可以在命令行中使用,如下所示:
project location>python manage.py shell
>>>from polls.views import IndexView
>>>iv=IndexView()
>>>dir(iv)
['__class__', ...whole bunch of interesting stuf here... , 'template_name_suffix']
>>> iv.__class__
<class 'polls.views.IndexView'>
答案 3 :(得分:0)
尝试:
class MyView(View):
print(self)
def get(self, request):
print('self:', self)
return HttpResponse('result')