繁体   English   中英

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

[英]django-crispy-forms how to insert size option in one Input field?

以我的脆脆形式,我只想在其中一个输入字段中插入一个size =“ 3”,以便匹配其最大长度。 我尝试将bpm定义为CharField时,以与插入maxlength的方式相同的方式插入大小,但这没有用。

当前在渲染时,它显示

<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" />

在我的表单模板中,我称{%crispy form%}

在我的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',
    # ...
)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM