有没有办法从Django的TemplateView中相同类中的另一个函数访问函数中的变量

时间:2019-01-27 17:42:00

标签: python django

$.ajax({
  'url' : '{% url 'add_question_main' %}',
  'type' : 'GET',
  'data' : {
  'num' : num
  },
  'success' : function(data) {
    if (data == "success") {
     alert('request sent!');
    }
  }
});

如何从Django的TemplateView中同一类中的另一个函数访问函数中的变量

class add_question_main(TemplateView):
    template_name = 'add_question_paper/index.html'


    def get(self,request,*args,**kwargs):
        form = question_details_form()
        no_txt = request.GET.get('num')
        return render(request,self.template_name,{'form':form})


    def post(self,request,*args,**kwargs):
        form = question_details_form(request.POST)
        return render(request,self.template_name,{'form':form})

我想知道如何在函数发布中使用no_txt的值?

1 个答案:

答案 0 :(得分:0)

因为在以下情况下不会调用get函数 发布POST,最好的办法是 通过重构调用独立获得相同的值 进入辅助方法。

选项1:


def get_no_txt(self):
    return self.request.GET.get('num')

def get(self,request,*args,**kwargs):
    form = question_details_form()
    no_txt = self.get_no_txt()
    return render(request,self.template_name,{'form':form})

def post(self,request,*args,**kwargs): form = question_details_form(request.POST) no_txt = self.get_no_txt() return render(request,self.template_name,{'form':form})

这是否会做您想要做的事 取决于您的模板和要提交的数据 与表格。特别是您在 表单中应包含num查询参数。