我有以下代码:
class MyView(View):
var2 = Choices.objects.get(id=1)
my_strings = ['0','1','2','3']
@login_required
def myfunction(self,request):
return render(request,
'app/submit.html',{'my_strings':my_strings, 'var2':var2})
我想访问" var2"和" my_string"变量并在模板submit.html中显示它们。如果我只使用函数而不将它放在一个类中,一切正常。但在课堂上它显示错误。
任何人都可以告诉我如何访问" var2"和" my_string" " myfunction"中的类变量?
答案 0 :(得分:1)
你必须使用自我。在类变量前面。
基于类视图中的函数名称应与您尝试使用的http方法相对应(get,post等...)
@login_required
def get(self,request):
return render(request,
'app/submit.html',{'my_strings':self.my_strings, 'var2':self.var2})
还请阅读: https://docs.djangoproject.com/en/1.9/topics/class-based-views/intro/
答案 1 :(得分:0)
您不必为调度请求编写自定义函数... Django内部有GET和POST方法来执行此操作...并且还需要处理登录所需的首选方法是from django.utils.decorators import method_decorator
@method_decorator(login_required, name='dispatch')
class MyView(View):
string = "your string"
def dispatch(self, *args, **kwargs):
return super(MyView, self).dispatch(*args, **kwargs)
def get(self, request):
return render(request, 'template', {'string': self.string})
{{1}}