栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

更改在Django中使用ModelForm创建的表单元素的宽度

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

更改在Django中使用ModelForm创建的表单元素的宽度

用例最简单的方法是使用CSS 。这是一种用于定义表示的语言。查看由表单生成的代码,记下您感兴趣的字段的ID,并通过CSS更改这些字段的外观。

long_desc
ProductForm中字段的示例(当表单没有自定义前缀时):

#id_long_desc {    width: 300px;    height: 200px;}

第二种方法 是将

attrs
关键字传递给小部件构造函数。

class ProductForm(ModelForm):    long_desc = forms.CharField(widget=forms.textarea(attrs={'cols': 10, 'rows': 20}))    short_desc = forms.CharField(widget=forms.textarea)    class meta:        model = Product

它的Django的文档中描述。

第三种方法 是将newforms的漂亮的声明性界面保留一段时间,然后在自定义构造函数中设置您的小部件属性。

class ProductForm(ModelForm):    long_desc = forms.CharField(widget=forms.textarea)    short_desc = forms.CharField(widget=forms.textarea)    class meta:        model = Product    # Edit by bryan    def __init__(self, *args, **kwargs):        super(ProductForm, self).__init__(*args, **kwargs) # Call to ModelForm constructor        self.fields['long_desc'].widget.attrs['cols'] = 10        self.fields['long_desc'].widget.attrs['rows'] = 20

此方法具有以下优点:

  • 您可以为从模型自动生成的字段定义窗口小部件属性,而无需重新定义整个字段。
  • 它不依赖于表单的前缀。


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/647159.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号