@method_decorator(login_required, name='dispatch')
class BaseView(TemplateView):
template_name = '...html'
def dispatch(self, request, *args, **kwargs):
# ...
return super(BaseView, self).dispatch(request, *args, **kwargs)
class ConfigureView(BaseView):
form_class = Form
template_name = 'configure.html'
def get(self, request, *args, **kwargs):
form = self.form_class(user=request.user)
return render(request, self.template_name, {
'form': form
})
def post(self, request, *args, **kwargs):
form = self.form_class(request.POST, user=request.user)
if form.is_valid():
form.save()
return redirect('...')
return render(request, self.template_name, {'form': form})
def get_context_data(self, **kwargs):
print('**********') # Never printed
context = super(ConfigureView, self).get_context_data(**kwargs)
context['app'] = App.objects.get(slug=kwargs['slug'])
return context
为什么?我想我是在看医生。在
在您的
.get()
方法中返回render
,此方法(render
)接收上下文作为参数,它不调用.get_context_data()
,需要执行以下操作:您可以实例化该类,并调用该方法
或者
^{pr2}$它应该可以到达print命令
相关问题 更多 >
编程相关推荐