Django:我可以为一个字段设置两个标签吗?

时间:2015-06-16 15:05:43

标签: python django django-models django-forms django-crispy-forms

我有一个django表格,我需要显示测量单位。

例如,对于表单字段,我有标签和值。我还需要另外一个“标签”来进行单位测量。

E.g。 重量[文本框] Kg

如何在forms.py中的表单中添加Kg?我正在使用crispy表单模块来呈现我的表单。

这是forms.py。

的一个例子
class WeightForm(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        super(LifeEventsForm, self).__init__(*args, **kwargs)
        self.helper=FormHelper(self)
        self.helper.layout = Layout(
             'weight',

             FormActions(
                Submit('submit', "Save changes"),
                Submit('cancel',"Cancel")
            ),
        )
        self.helper.form_tag = False
        self.helper.form_show_labels = True

class Meta:
    model = myWeight

我的models.py看起来像:

class myWeight(models.Model):
    id = models.IntegerField()
    weight = models.IntegerField(null=True,blank=True)

    def __str__(self):
        return str(self.id)

1 个答案:

答案 0 :(得分:0)

也许不是最好的主意,但很简单:

您可以使用自定义模板

覆盖from crispy_forms.layout import Field
class DoubleLabeledField(Field):
    template = "your_custom_field.html"

来自your_custom_field.html的{​​{1}}来自/site-packages/crispy_forms/templates/bootstrap3/field.html的所有内容(如果是另一个模板包,请替换bootstrap3)并在{{ field.label|safe }}的每个入口附近放置一些信息

然后在你的表格中应该是:

self.helper.layout = Layout(
             DoubleLabeledField('weight'),

             FormActions(
                Submit('submit', "Save changes"),
                Submit('cancel',"Cancel")
            ),
        )