【问题标题】:Keeping option selected after form is submitted in Django在 Django 中提交表单后保持选项被选中
【发布时间】:2014-03-20 00:40:26
【问题描述】:

我有一个 ModelForm 用于将书籍保存到数据库中。我的模板中有一个下拉菜单,如果表单中有任何错误,我想保留用户的选项。我找到了几个解决方案,但它们似乎不起作用。

我的模板:

<select name="category" class="form-control" id="category">
    {% for category in library_categories %}
        <option value="{{ category.id }}" {% if category.id == form.category.value %} selected{% endif %}>{{ category.title }}</option>
    {% endfor %}
</select>

views.py:

def add_new(request):
    library_categories = LibraryCategory.objects.all()

    if request.method == "POST":
        form = AddNewBookForm(request.POST)
            if form.is_valid():
                form.save()
                message.success(request, _("Your book has sucessfully been added to the library."))
    else:
        form = AddNewBookForm()

    return render(request, "add_new.html", {
        "library_categories" : library_categories,
        "form" : form
    })

HTML 代码中绝对没有输出,if 条件被忽略。我找到的解决方案之一是:Django Select Option selected issue

我只是不知道如何将模板中的变量转换为整数。感谢您的帮助。

【问题讨论】:

    标签: python django django-forms django-templates


    【解决方案1】:

    您不应该在模板中手动创建&lt;select&gt; 元素。 Django 表单会为您执行此操作,并且会在出现错误时重新显示相关项目。

    将所有 HTML 替换为:

    {{ form.category }}
    

    【讨论】:

      猜你喜欢
      • 2015-09-09
      • 2014-06-14
      • 2013-10-06
      • 1970-01-01
      • 2013-08-10
      • 2015-01-22
      • 2019-01-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多