访问函数中的类变量 - Django

时间:2016-07-25 08:07:19

标签: python django

我有以下代码:

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"中的类变量?

2 个答案:

答案 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}}