首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Django中获取HTML表单中多个按钮之一的ID

在Django中获取HTML表单中多个按钮之一的ID
EN

Stack Overflow用户
提问于 2013-12-08 01:46:26
回答 1查看 3.3K关注 0票数 2

我使用Django作为潜在的FSM,为跟踪网站提供动力。我想让用户更改机器的状态。状态表示为一个django-fsm字段,本质上是一个CharField,上面有一些逻辑被黑。

为了让用户选择下一个状态,我的最初方法是显示一个多选字段(下拉菜单),该字段将从当前状态中不可访问的状态变为灰色。我找不到一个很好的方法来解决这个问题,而且它对用户并不是很友好(尽管我仍然对这个问题的解决方案感兴趣)。出于所有这些原因,我同意B计划:

有一个带有多个按钮的表单,每个状态都有一个按钮。就像这样:

代码语言:javascript
复制
<form action="{% url 'tracking:order_detail' order.id %}" method="POST">
        <div id="buttons">
            <input id="3.4" type="submit" class="f" name="action" value="Some State">
            <input id="3.5" type="submit" class="f" name="action" value="Another State">
            <div style="clear:both"></div><!-- Need this to have the buttons actually inside div#buttons -->
        </div>
</form>

现在我的问题是:作为一个值,我想要一些人类可读的东西,但是我想从Django检索一个实际的状态值,我把它放在ID字段中,比如"3.4“。查看Django中的表单数据,我所能做的就是:

代码语言:javascript
复制
if request.method == "POST":
     action = request.POST.get('action')

但这将给我“另一个国家”。无法访问id字段。看着表格规格说明,我找不到另一个合适的领域。对我该怎么做有什么想法。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-08 07:02:36

使用输入名称作为值

代码语言:javascript
复制
<form action="{% url 'tracking:order_detail' order.id %}" method="POST">
        <div id="buttons">
            <input type="submit" class="f" name="action:3.4" value="Some State">
            <input type="submit" class="f" name="action:3.5" value="Another State">
            <div style="clear:both"></div><!-- Need this to have the buttons actually inside div#buttons -->
        </div>
</form>

巨蟒

代码语言:javascript
复制
if 'action:3.4' in request.POST:
    action = '3.4'
...    

如果您有很多操作,您可以在POST键中搜索操作。

代码语言:javascript
复制
action = None
for key in request.POST.keys():
    if key.startswith('action:'):
        action = key[7:]
        break
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20448911

复制
相关文章

相似问题

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