Django ModelForm/Form修改默认的widgets控件属性css样式
发布时间:2020-12-15 17:15:35 所属栏目:大数据 来源:网络整理
导读:Django 中利用ModelForm 可以快速地利用数据库对应的Model 子类来自动创建对应表单. ????????from?django.db?import?modelsfrom?django.forms?import?ModelFormclass?Book(models.Model):????name?=?models.CharField(max_length=100)????description?=?mode
Django 中利用ModelForm 可以快速地利用数据库对应的Model 子类来自动创建对应表单. ???????? from?django.db?import?models from?django.forms?import?ModelForm class?Book(models.Model): ????name?=?models.CharField(max_length=100) ????description?=?models.CharField(max_length=100) ????url=?models.CharField(max_length=100) ????authors?=?models.ManyToManyField(Author) 修改Form的widgtes属性方法 from?django?import?forms class?BookForm(forms.Form): ????name?=?forms.CharField() ????url?=?forms.URLField() ????description?=?forms.CharField() 第一种:直接修改 class?BookForm(forms.Form): ????name?=?forms.CharField(widget=forms.TextInput(attrs={'class':?'special'})) ????url?=?forms.URLField() ????comment?=?forms.CharField(widget=forms.TextInput(attrs={'size':?'40'})) 第二种:在表单定义中修改widget属性 class?CommentForm(forms.Form): ????name?=?forms.CharField() ????url?=?forms.URLField() ????comment?=?forms.CharField() ????name.widget.attrs.update({'class':?'special'}) ????comment.widget.attrs.update(size='40') 修改ModelForm的widgets属性两种方法: 第一种方法: class?BookForm(forms.ModelForm): ????class?Meta: ????????model?=?Book ????????fields?=?['name',?'description'] ????????widgets?=?{ ????????????'name':?Textarea(attrs={'cols':?80,?'rows':?20}),????????????'description':?Textarea(attrs={'cols':?80,????????} 第二种重写__init__方法: class?BookForm(forms.ModelForm): ????class?Meta: ????????model?=?Book ????def?__init__(self,?*args,?**kwargs): ????????super().__init__(*args,?**kwargs) ????????self.fields['name'].widget.attrs.update({'class':?'special'}) ????????self.fields['description'].widget.attrs.update(size='40') Django将在渲染输出中包含额外属性: >>>?f?=?CommentForm(auto_id=False) >>>?f.as_table() <tr><th>Name:</th><td><input?type="text"?name="name"?class="special"?required></td></tr> <tr><th>Url:</th><td><input?type="url"?name="url"?required></td></tr> <tr><th>Description:</th><td><input?type="text"?name="comment"?size="40"?required></td></tr> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |