在我的脆皮表单中,我想仅在其中一个输入字段中插入 size="3",以便它与其最大长度匹配。我尝试以与将 bpm 定义为 CharField 时插入 maxlength 相同的方式插入 size,但它不起作用。
当前渲染时,显示
<input class="textinput textInput form-control" id="id_bpm" maxlength="3" name="bpm" type="text" />
但我想改变它来显示
<input class="textinput textInput form-control" id="id_bpm" maxlength="3" size="3" name="bpm" type="text" />
在我的表单模板中,我称之为 {%脆皮表单 %}
在我的forms.py中:
from django import forms
from .models import Profile, Artist
from crispy_forms.helper import FormHelper
from crispy_forms.layout import Submit, Layout, Div
from crispy_forms.bootstrap import StrictButton, FormActions
class ProfileForm(forms.ModelForm):
class Meta:
model = Profile
fields = [
"artist",
"title",
"mix",
"bpm",
"genre",
]
artist = forms.CharField(widget=forms.TextInput)
bpm = forms.CharField(widget=forms.TextInput, max_length=3)
def __init__(self, *args, **kwargs):
super(ProfileForm, self).__init__(*args, **kwargs)
self.helper = FormHelper()
self.helper.form_class = 'form-horizontal'
self.helper.label_class = 'col-lg-2'
self.helper.field_class = 'col-lg-10'
self.helper.layout = Layout(
'artist',
'title',
'mix',
'bpm',
'genre',
FormActions(Div(Submit('submit','Submit', css_class='btn-primary'), style="float: right")),
)
def clean_artist(self):
artist = self.cleaned_data.get("artist")
if not artist:
raise forms.ValidationError("Artist is a required field.")
else:
artist, created = Artist.objects.get_or_create(name=artist)
return artist
使用
Field
布局对象为布局对象指定任何 属性:
from crispy_forms.layout import Field
self.helper.layout = Layout(
'artist',
'title',
'mix',
Field('bpm', size=3),
'genre',
# ...
)
尝试:
Field("comments", css_class="form-control form-control-lg w-100")