我有一个类连接到模板,在其中我有两个函数,一个是验证用户(使用我的数据库中可用的凭据),第二个是实际获取一些数据并将其推送到我的模板。但是使用print('whatever')
我发现在调用类时没有函数被调用。为什么呢?
views.py
class GenerateReport(TemplateView): # This view is responsable to access users data and return it
template_name = 'ga_app/report.html'
def generate_report(request): # authenticate user
c = CredentialsModel.objects.get(user_id = request.user.id)
credentials = c.credentials
http = httplib2.Http()
http = credentials.authorize(http)
service = build('analyticsreporting', 'v4', http=http)
print('This first function is not called')
def print_data(request): # Get some data
profile_id = GoogleProperty.objects.get(user_id = request.user.id)
some_data = service.data().ga().get(
ids='ga:' + profile_id,
start_date='7daysAgo',
end_date='today',
metrics='ga:sessions').execute()
print('This second function neither')
return render(request, self.report, {'some_data': some_data}, {'profile_id': profile_id})
urls.py
url(r'^re/$', GenerateReport.as_view(), name='re'),
shell显然没有显示任何打印出来的内容,并且模板无法呈现metrics
和/或profile_id
答案 0 :(得分:2)
默认情况下不会调用这些函数,因此您需要自己调用它们。查看TemplateView的文档,看起来您需要实现get_context_data
方法,您可以在其中调用这些函数,并返回模板的上下文。