传递变量(视图 --> 模板 --> 视图)

阿曼达_K96

问题:我想生成一个随机数,让用户计算这两个的相加。然后,我想评估这个数字,看看解决方案是否正确。

我的问题:除了评估位之外,我可以做任何事情,因为随机数的值会改变!

HTML文件:

  <p> What is {{ a }} + {{ b }} ? </p>
  <form action="{% url 'form_handle' %}" method="POST">{% csrf_token %}
      {{form.as_p}}
      <button type="submit">Submit</button>
  </form>

表格文件:

class MyForm(forms.Form):
    num1 = forms.CharField(max_length=20)

查看文件:

def form_handle(request):
    if request.method == 'POST':
        form = MyForm(request.POST) # if post method then form will be validated
        if form.is_valid():
            cd = form.cleaned_data
            num1 = cd.get('num1')
            #num2 = cd.get('num2')
        #result = cd.get('result')
            if float(num1) == float(a + b):
                # give HttpResponse only or render page you need to load on success
                return HttpResponse("Good job!")
            else:
                # if sum not equal... then redirect to custom url/page
                return HttpResponseRedirect('rr/')  # mention redirect url in argument

    else:
        a = random.randrange(5,10);
        b = random.randrange(10,20);
        form = MyForm() # blank form object just to pass context if not post method
    return render(request, "rr.html", {'form': form, 'a': a, 'b':b})

我得到的错误是“在赋值之前引用了局部变量‘a’”。我确实尝试更改 a 和 b 的初始化,并将代码放在函数声明之后,但这也不起作用,因为该函数会将数字 (a + b) 与另一组随机生成的数字进行比较

非常感谢任何帮助,或者可能是解决此问题的新方法。请注意,尽管我是 Python 的初学者

从不独行者

您可以尝试会话数据中存储ab

def form_handle(request):
    if request.method == 'POST':
        form = MyForm(request.POST) # if post method then form will be validated
        if form.is_valid():
            cd = form.cleaned_data
            num1 = cd.get('num1')
            #num2 = cd.get('num2')
        #result = cd.get('result')
            a = request.session.get('a', 0) 
            b = request.session.get('b', 0) 
            if float(num1) == float(a + b):
                # give HttpResponse only or render page you need to load on success
                return HttpResponse("Good job!")
            else:
                # if sum not equal... then redirect to custom url/page
                return HttpResponseRedirect('rr/')  # mention redirect url in argument

    else:
        a = random.randrange(5,10);
        b = random.randrange(10,20);
        request.session['a'] = a
        request.session['b'] = b
        form = MyForm() # blank form object just to pass context if not post method
    return render(request, "rr.html", {'form': form, 'a': a, 'b':b})

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从Django模板传递变量到视图

来自分类Dev

Rails 4在视图或模板中传递变量

来自分类Dev

Django从基于类的视图向模板传递变量

来自分类Dev

在视图之间传递变量

来自分类Dev

Django在模板内传递视图URL变量

来自分类Dev

CodeIgniter:在视图之间传递变量

来自分类Dev

Django-将变量从函数视图传递到html模板

来自分类Dev

如何将变量从视图页面传递到基本模板

来自分类Dev

将变量传递给由多个视图扩展的 Django 模板

来自分类Dev

Laravel 5从控制器传递变量到视图

来自分类Dev

ui-router嵌套视图和传递变量

来自分类Dev

路由到视图而不传递变量-Laravel

来自分类Dev

从控制器传递变量到视图

来自分类Dev

传递变量和切换视图iOS / Xcode

来自分类Dev

Laravel 5从控制器传递变量到视图

来自分类Dev

如何修复从视图到 html 的传递变量

来自分类Dev

将视图与模板视图合并

来自分类Dev

骨干视图/模板混乱

来自分类Dev

骨干视图/模板混乱

来自分类Dev

使用模板的Android视图

来自分类Dev

从视图模板访问模块

来自分类Dev

Django:将值从模板传递到视图

来自分类Dev

将值从模板传递到 Django 视图

来自分类Dev

django模板-在模板之间传递变量

来自分类Dev

Django:使用模板视图中的变量

来自分类Dev

Django模板不从视图加载变量

来自分类Dev

访问从 django 中的模板呈现模板的视图

来自分类Dev

渲染木偶/骨干视图时将变量传递到车把模板中

来自分类Dev

Django:如果数据库中存在值,请将其作为变量从视图传递到模板