首页 > django-form生成的前端代码如何定制前端样式/特效会比较方便?

django-form生成的前端代码如何定制前端样式/特效会比较方便?

之前工作中有两次碰到这里,都感觉django-form与前端耦合很重。不知道是我不懂得合理的工作方式,还是这个工具本身的问题。求指点。


django-form有个参数叫widgets,通过这个参数,可以给form相应的字段添加一下html属性,使用css样式可以如下:

class CommentForm(forms.Form):
    name = forms.CharField(widget=forms.TextInput(attrs={'class': 'special'}))
    url = forms.URLField()
    comment = forms.CharField(widget=forms.TextInput(attrs={'size': '40'}))

>>> f = CommentForm(auto_id=False)
>>> f.as_table()
<tr><th>Name:</th><td><input type="text" name="name" class="special"/></td></tr>
<tr><th>Url:</th><td><input type="url" name="url"/></td></tr>
<tr><th>Comment:</th><td><input type="text" name="comment" size="40"/></td></tr>

具体教程在这:https://docs.djangoproject.com/en/1.7/ref/forms/widgets/


django-form 还是挺好用的。题主说的耦合大概是觉得 django-form 生成的 template 不方便自定义吧

django-form 设计为了解决的痛点是表单的验证,也就是将你需呀 submit 的表单数据封装成一个 python 的对象,其中的技巧就是借助 pythonclass与表单的映射。

简单说来,form class 只负责帮你在提交表单数据之后的验证工作。至于template如何写,完全可以自由发挥,最终你通过form submit的表单字段,也即是 name 要和 form class 定义的字段相符合就OK啦


感觉还是自己写表单吧,Django form验证就行了,毕竟表单样式什么的自定义比较好

【热门文章】
【热门文章】