html - 在 Django 中提交后保留选择选项值

标签 html django django-templates

我没有使用 Ajax 或 Django 表单。我在表单标签内有纯 HTML 选择标签,并在我的 View 中发送选定的选项值。我想在提交后保留选择选项值。目前,无论我的选择如何,它都会达到默认值 1。帮助将不胜感激。

这是我的模板代码:

            <form method = "post" action = "{% url 'index' %}">
                {% csrf_token %}
                <label class="mainlbl">Vega</label>
                <select name = "drop1" >
                    <option value="1">1</option>
                    <option value="2">2</option>
                    <option value="3">3</option>
                    <option value="4">4</option>
                    <option value="5">5</option>
                    <option value="6">6</option>
                    <option value="7">7</option>
                    <option value="8">8</option>
                    <option value="9">9</option>
                    <option value="10">10</option>
                    <option value="11">11</option>
                    <option value="12">12</option>
                </select>
                <input class="btn btn-ocean btn-side-bar" type = "submit" value="Submit">
            </form>

我的观点是:

def index(request):
    if request.method == "POST":
        vega = request.POST['drop1']
        vega = int(vega)
        gvo = GVOptimize('NSE', 'Nifty')
        data = gvo.get_optimal_strategies(vega)
        str1 = None

        for i in range(0, len(data)):
            if i == 0:
                str1 = data[i]

            elif i == 1:
                str2 = data[i]

            elif i == 2:
                str3 = data[i]

            elif i == 3:
                str4 = data[i]

            else:
                break
        context_dict = {'str1': str1, 'str2': str2, 'str3': str3, 'str4': str4 'vega': vega}
        return render(request, 'demo/dashboard.html', context_dict)
    else:
        context_dict = {}
        return render(request, 'demo/dashboard.html', context_dict)

最佳答案

如果您真的坚持使用一种 hacky 方式来维护所选选项,您可以更改表单以检查每个选项以查看它是否等于您在上下文中传回的数字

<form method = "post" action = "{% url 'index' %}">
    {% csrf_token %}
    <label class="mainlbl">Vega</label>
    <select name = "drop1" >
        {% for idx in "useaformpls!" %}
            <option value="{{ forloop.counter }}" {% if context_val == forloop.counter %}selected {% endif %}>
                 {{ forloop.counter }}
             </option>
        {% endfor %}
    </select>
    <input class="btn btn-ocean btn-side-bar" type = "submit" value="Submit">
</form>

其中 context_val 等于您在 View 的上下文数据中传回的索引。

关于html - 在 Django 中提交后保留选择选项值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35151508/

相关文章:

css - 两个 Fluid DIV 之间的固定 px 边距

python - 为什么 Apache 不使用 Django 和 mod_wsgi 显示 404 错误?

python - Django redis 缓存重建

django - 通过 django 跟踪打开的电子邮件

css - 除非我有一些内容,否则 Div 不会显示?

javascript - 为什么setState在循环中插入重复值

python - 在文本输入字段中设置示例答案

Django 模板 : Make sections of template reorderable?

django-templates - 在Django中返回一定数量的单词后的字符串

javascript - raphael.js 中的 z-index 分层