小部件怎么在django表单中使用

  介绍

今天就跟大家聊聊有关小部件怎么在django表单中使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

<强>一、指定使用的小部件

每个字段都有一个默认的小部件类型。如果你想要使用一个不同的小部件,可以在定义字段时使用部件参数。像这样:

得到django  import 形式      class  CommentForm (forms.Form):   时间=name 才能;forms.CharField ()   时间=url 才能;forms.URLField ()   comment 才能=,forms.CharField(小部件=forms.Textarea)

这将使用一个文本区域小部件来展现表单的评论字段,而不是默认的TextInput部件。

<强>二,设置部件的参数

许多部件具有可选的额外参数,下面的示例中,设置了SelectDateWidget的年属性,注意参数的传递方法:

得到django  import 形式      BIRTH_YEAR_CHOICES =, (& # 39; 1980 & # 39;, & # 39; 1981 & # 39;,, & # 39; 1982 & # 39;)   FAVORITE_COLORS_CHOICES =, (   ,,(& # 39;蓝# 39;,,& # 39;蓝# 39;),   ,,(& # 39;绿色# 39;,,& # 39;绿色# 39;),   ,,(& # 39;黑色# 39;,,& # 39;黑色# 39;),   )      class  SimpleForm (forms.Form):   时间=birth_year 才能;forms.DateField(小部件=forms.SelectDateWidget=BIRTH_YEAR_CHOICES)(年)   时间=favorite_colors 才能;forms.MultipleChoiceField (   ,,,=False,   ,,,小部件=forms.CheckboxSelectMultiple,   选择,,,=FAVORITE_COLORS_CHOICES,   )才能

<强>三,为小部件添加CSS样式

默认情况下,当Django渲染小部件为实际的HTML代码时,不会帮你添加任何的CSS样式,也就是说网页上所有的TextInput元素的外观是一样的。

看下面的表单:

得到django  import 形式      class  CommentForm (forms.Form):   时间=name 才能;forms.CharField ()   时间=url 才能;forms.URLField ()   comment 才能=,forms.CharField ()

这个表单包含三个默认的TextInput小部件,以默认的方式渲染,没有CSS类,没有额外的属性。每个部件的输入框将渲染得一模一样,丑陋又单调:

在祝辞祝辞,f =, CommentForm (auto_id=False)   在祝辞祝辞,f.as_table ()   & lt; tr> & lt; th>名称:& lt;/th> & lt; td> & lt; input 类型=皌ext", Name=皀ame", required /祝辞& lt;/td> & lt;/tr>   & lt; tr> & lt; th> Url: & lt;/th> & lt; td> & lt; input 类型=皍rl", name=皍rl", required /祝辞& lt;/td> & lt;/tr>   & lt; tr> & lt; th>评论:& lt;/th> & lt; td> & lt; input 类型=皌ext", name=癱omment", required /祝辞& lt;/td> & lt;/tr>

在真正的网页中,你可结束不想让每看个小部件上去都一样。可能想要给评论一个更大的输入框,可能想让的名字# 39;小部件具有一些特殊的CSS类。

可以在创建小部件时使用小部件。attrs参数来实现这一目的:

class  CommentForm (forms.Form):   name 才能=,forms.CharField(小部件=forms.TextInput (attrs={& # 39;类# 39;:,& # 39;特殊# 39;}))   时间=url 才能;forms.URLField ()   comment 才能=,forms.CharField(小部件=forms.TextInput (attrs={& # 39;大小# 39;:,& # 39;40 & # 39;}))

注意参数的传递方式!

这次渲染后的结果就不一样了:

在祝辞祝辞,f =, CommentForm (auto_id=False)   在祝辞祝辞,f.as_table ()   & lt; tr> & lt; th>名称:& lt;/th> & lt; td> & lt; input 类型=皌ext", Name=皀ame",类=皊pecial", required /祝辞& lt;/td> & lt;/tr>   & lt; tr> & lt; th> Url: & lt;/th> & lt; td> & lt; input 类型=皍rl", name=皍rl", required /祝辞& lt;/td> & lt;/tr>   & lt; tr> & lt; th>评论:& lt;/th> & lt; td> & lt; input 类型=皌ext", name=癱omment",大??0“,required /祝辞& lt;/td> & lt;/tr>

看完上述内容,你们对小部件怎么在django表单中使用有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注行业资讯频道,感谢大家的支持。

小部件怎么在django表单中使用