抱歉,如果这是一个愚蠢的问题,但我是新来的Django和不知道什么是错的。在
我想显示一行接一行的数据库,这应该改变后,按一个按钮。其目的是翻译词汇并检查是否正确。在
这是我的观点:
counter = 3
def learn(request):
obj = Vokabel.objects.filter(pk=counter)
if request.method == "POST":
form=addE(request.POST)
if form.is_valid():
temp1 = request.POST.get('elearn')
for i in obj:
if temp1 == i.eVok:
counter = counter + 1
return HttpResponseRedirect('/learnnext/')
else:
return HttpResponseRedirect('/learn/')
else:
form = addE()
return render(request, 'learn.html', {'form' : form, 'obj' : obj})
我的表格:
^{pr2}$但是这会返回以下错误:
^{3}$
由于没有指定要使用全局变量counter,因此出现了错误,因此从解析器的角度来看,您试图在为其赋值之前使用局部变量计数器的值。查找
global
关键字以了解更多信息。但这不是重点。在Django不是一个连续的过程。把Django代码看作是一个持续运行的程序,这似乎是一种常见的误解。不是的。Django应用程序生命周期介于收到请求和发送响应之间。你不能真的依赖你的反变量保持不变。根据您的特定限制,有几种方法可以处理此问题。如果希望每个用户都有自己的计数器,可以使用sessions并将counter设置为会话键(这里是一个doc link)。如果希望计数器在所有用户会话中都是全局的,那么可以使用缓存API来存储和更新其值(同样,相关的doc link)。在
相关问题 更多 >
编程相关推荐