2017-04-24 55 views
0

我想手动呈现表单字段。手动呈现字段和自定义CSS类

我想添加一个引导程序和自定义CSS类来呈现HTML。

我该怎么做?

forms.py

class OrderCreateForm(forms.ModelForm): 

    class Meta: 
     model = Order 

     fields = ['name','postal_code'] 
     widgets = { 
      'postal_code': forms.RadioSelect(), 
     } 

file.html

<form action="." method="post" class="order-form">  
<div class="fieldWrapper"> 
    {{ form.postal_code }} 
</div> 
<p><input type="submit" value="Send"></p> 
    {% csrf_token %} 
</form> 
{% endblock %} 

呈现的HTML

<div class="fieldWrapper"> 
    <ul id="id_postal_code"> 
    <li><label for="id_postal_code_0"><input type="radio" name="postal_code" value="Yes" required id="id_postal_code_0" />Yes</label></li> 
    <li><label for="id_postal_code_1"><input type="radio" name="postal_code" value="No" required id="id_postal_code_1" />No</label></li> 
    </ul> 
</div> 

如何解决概率lem?

我将不胜感激您的帮助。

回答

2

您可以添加CSS类,形成以下列方式字段:

'postal_code': forms.RadioSelect(attrs={"class": "form-control"}), 

另一种选择是不呈现形式这样的一切,只写自己的HTML。

+0

一个好主意。其他领域呢?例如:姓名?我是否必须将模型添加到attr?我不明白。因为我有我自己的html。你什么意思 ? – Kuba

+1

通过编写html,我的意思是执行''完成控制。也可以看看django-crispy-forms更多控制风格。 – user6731765

+0

这正是我的意思。 和完全控制。但我不知道如何从Model获取数据。 – Kuba