在Django Book一书中提到,可以使用form类来更好的创建表单,完成与用户的交互。
相比其以往的方法,代码确实更加简洁,风格也好。但是,form类的排版及CSS样式的修改,由于教程不足,变得有些晦涩。
本文将详细介绍其挂钩CSS排版的方法。
Django Book中的方式:
message = forms.CharField(widget=forms.Textarea)
用该种方法可以将form的形式变为Textarea
然而,如何使用CSS设置Textarea的样式呢?
在forms.py中创建类LargeTextareaWidget
class LargeTextareaWidget(forms.Textarea):
def __init__(self,*args,**kwargs):
kwargs.setdefault('attrs',{'class':'span7'}).update({'rows':10,'cols':100})
super(LargeTextareaWidget,self).__init__(*args,**kwargs)
后面的row与cols可指定行列数,但精髓在于setdefault('attrs',{'class':'span7'}).设置class的值为span7
然后,我们便可以在CSS文件中使用.span7{}来设置该textarea的样式