2014-02-19 193 views
0

我有一個ModelForm,用於將書籍保存到數據庫中。在我的模板中有一個下拉菜單,如果表單中有任何錯誤,我想保留用戶的選項。我找到了幾個解決方案,但他們似乎沒有工作。在Django中提交表單後選擇保留選項

我的模板:

<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代碼絕對沒有輸出,如果條件被忽略。我發現的解決方案之一是這樣的:Django Select Option selected issue

我只是不知道如何將我的模板中的變量轉換爲整數。謝謝你的幫助。

回答

0

您不應該在模板中手動創建<select>元素。 Django表單將爲您做到這一點,並在錯誤重新顯示時保留相關項目的選擇。

替換隻是所有的HTML:

{{ form.category }} 
+0

丹尼爾·羅斯曼可以在一個房間談談嗎? –