2015-09-01 50 views
0

我有一個表單,您可以在新客戶端中輸入。在客戶表單中,您應該能夠選擇他們分開的分支。我試圖在模板中添加一個選擇字段,列出所有分支作爲選項,但它不返回任何內容。這樣做的正確方法是什麼?Django:如何從CreateView創建下拉列表

models.py

class Client(models.Model): 
    branch = models.ForeignKey(Branch) 

view.py

class ClientCreate(CreateView): 
    model = Client 
    fields = [..., 'branch'] 

form.html

<form role="form" method="post" action="."> {% csrf_token %} 
    <div class="form-group"> 
    <label>Type</label> 
    <div class="input-group"> 
     <select id="id_type" name="type"> 
     <option value selected="selected">Select</option> 
     {% for i in client_create %} 
     <option value="{{i.branch}}">{{i.branch}}</option> 
     {% endfor %} 
     </select> 
    </div> 
    </div> 
+0

做你試圖簡單地寫{%form.as_p%},而不是創建自己的下拉列表? –

+0

對不起,{%endfor%}在我的代碼中。更正了這個問題 – Mantis

回答

2

的第一件事是模型中未型號:

class ClientCreate(CreateView): 
    model = Client 
    fields = [..., 'branch'] 

第二件事,嘗試使用產生ModelForm

<form role="form" method="post" action="."> 
    {% csrf_token %} 
    ... 
    {{ form.branch }} 
</form> 
+0

它的工作原理如果我這樣做,但我想更多地控制表格模板 – Mantis

+1

你可以使用'{{form.branch}}'這將導致選擇與所有選項 – Mounir

+0

完美。到底是什麼我以後。謝謝。如果你想更新你的答案,我會將其標記爲已回答 – Mantis