django-crispy-forms 如何在一个输入字段中插入尺寸选项?

问题描述 投票:0回答:2

在我的脆皮表单中,我想仅在其中一个输入字段中插入 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
python django forms django-crispy-forms
2个回答
0
投票

使用

Field
布局对象为布局对象指定任何 属性

from crispy_forms.layout import Field

self.helper.layout = Layout(
    'artist',
    'title',
    'mix',
    Field('bpm', size=3),
    'genre',
    # ...
)

0
投票

尝试:

Field("comments", css_class="form-control form-control-lg w-100")
© www.soinside.com 2019 - 2024. All rights reserved.