我在做一组问题,每个问题的答案都是“是”或“否”。答案取决于其他不同的问题,这个过程会重复几次。问题是,每次用户发送答案时,视图都会被重新加载,并且总是显示第一个问题。 我是Django和网络编程的新手。 谢谢你的回答。你知道吗
class ExpertoView(FormView):
template_name = "SisExperto.html"
form_class = FormExpert
success_url = 'SisExperto'
def __init__(self):
self.arbol = eval(self.fileToStr('SisExperto/enfermedades.txt')) #evalua el archivo
self.Nodoactual = self.arbol
self.pregunta = self.Nodoactual[0]
def form_valid(self, form):
#This method is calle when valid for data has been POSTED
#It should return an HttpResponse
if len(self.Nodoactual) == 3:
[self.pregunta, yesNode, noNode] = self.Nodoactual
if form.is_valid():
form_data = form.cleaned_data
respuesta = form_data.get('campo')
if respuesta == 'y':
self.Nodoactual = yesNode
else:
self.Nodoactual = noNode
self.pregunta = self.Nodoactual[0]
#el siguiente return es obligatorio
return super(ExpertoView, self).form_valid(form)
def get_context_data(self, **kargs):
""" Use this to add extra context """
context = super(ExpertoView, self).get_context_data(**kargs)
context["pregunta"] = self.pregunta
return context
您应该进一步了解一下框架和HTTP是如何工作的。你知道吗
首先,HTTP是无状态的,它不记得最后一个请求的状态。记住你去年夏天所做的事情的“黑客”,我指的是请求,就是使用会话。你知道吗
其次,对于每个HTTP请求,Django将实例化一个新的
ExpertoView
。所以即使你更新了自我。无实际意义属性,下一个请求(对上一个请求一无所知)将以self.arbol
开始。这里是您应该在视图中使用session的地方。你知道吗祝你好运。你知道吗
相关问题 更多 >
编程相关推荐