首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >html中的多个按钮,相同的视图,不同的值

html中的多个按钮,相同的视图,不同的值
EN

Stack Overflow用户
提问于 2018-06-17 05:26:52
回答 1查看 76关注 0票数 0

我正在尝试让我的html在HTML页面上显示一个session.counter。计数器应按随机数递增,递增的范围有4个不同的选项(基于按钮)。到目前为止,我已经将它们的所有操作路由到同一个视图,但是我不确定如何将这些值编码到视图中!我可以在视图中嵌套多个if-check吗?如果是这样,我是否需要在每次检查后立即重定向,或者是否可以在If - check之后重定向?编辑:我已经尝试添加隐藏的输入,以使我的视图更有效。我仍然是一个新手,所以如果你的反馈越具描述性,我就越容易实现更改并理解为什么!

下面是html:

代码语言:javascript
复制
        <div id="goldCount">
    <h2>Gold Count: {{ session.request.goldCount }}</h2>
</div>

<div id="goldNode">
    <h2>Blood Lotus Master</h2>
    <h5>(earns 50 to 200 gold coins)</h5>
    <form action='/process_gold' method="post">
        {% csrf_token %}
        <input type="hidden" name="earn" value="reap">
        <button type="submit" name="reap">収める - Reap</button>
    </form>
</div>

<div id="goldNode">
    <h2>Shadow Dance Troupe</h2>
    <h5>(earns 35 to 50 gold coins)</h5>
    <form action='/process_gold' method = "post">
        {% csrf_token %}
        <input type="hidden" name="earn" value="weave">
        <button type = "submit" name = "weave">織る - Weave</button>
    </form>
</div>

<div id="goldNode">
    <h2>Necromancy</h2>
    <h5>(earns -200 to 200 gold coins)</h5>
    <form action='/process_gold' method="post">
        {% csrf_token %}
        <input type="hidden" name="earn" value="summon">
        <button type = "submit" name="summon">召喚 - Summon</button>
    </form>
</div>

<div id="goldNode">
    <h2>Clan War!</h2>
    <h5>(earns -2000 to 2000 gold coins)</h5>
    <form action='/process_gold' method="post">
        {% csrf_token %}
        <input type="hidden" name="earn" value="summon">
        <button type="submit" name="war">影の戦争 - Shadow War</button>
    </form>
</div>

这是views.py文件

代码语言:javascript
复制
    def index(request):
if 'goldCount' not in request.session:
    request.session['goldCount'] = 0
return render(request, 'index.html')

    def process_gold(request):
reap = random.randint(50,200)
weave = random.randint(35,50)
summon = random.randint(-200,200)
war = random.randint(-2000,2000)

print(request.POST)

if request.POST['earn'] == 'reap':
    request.session['goldCount'] += random.randint(50,200)

if request.POST['earn'] == 'weave':
    request.session['goldCount'] += random.randint(35,50)

if request.POST['earn'] == 'summon':
    request.session['goldCount'] += random.randint(-200,200)

if request.POST['earn'] == 'war':
    request.session['goldCount'] += random.randint(-2000,2000)

return redirect('/')
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-17 10:40:38

如果你想通过超文本标记语言发送goldCount,你需要使用render_template而不是重定向。将goldCount存储到会话中,然后在您的HTML中调用{{request.session.goldCount}}

另外,正确的if语句应该是:

代码语言:javascript
复制
if 'goldCount' not in request.session:
    request.session['goldCount'] = 0 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50891877

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档