Django 表单。如何从initial_text中隐藏冒号?

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

我正在尝试这样做:


类 NoClearableFileInput(ClearableFileInput):
    初始文本 = ''
    输入文本 = ''

类 ImageUploadForm(forms.ModelForm):
    title = forms.CharField(label="TITLE", required=False,widget=forms.TextInput(attrs={'placeholder': 'name'}), label_suffix="")
    图像 = forms.ImageField(label='新文件',widget=NoClearableFileInput, label_suffix="")

    类元:
        模型=图像
        字段 = ('标题','图像')

类NoClearableFileInput 中清理了值initial_text。 在“标题”和“图像”字段中使用 label_suffix,但在初始文本中保留符号“:”。

result

如何去掉冒号?

python django forms
4个回答
19
投票

这对我来说对 Django 2.2 有用:

class ImageUploadForm(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.label_suffix = ""  # Removes : as label suffix

    # ...the rest of the form code...

7
投票

您必须在初始化时覆盖

label_suffix
。尝试进行以下更改:

class ImageUploadForm(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        kwargs.setdefault('label_suffix', '')
        super(ImageUploadForm, self).__init__(*args, **kwargs)

    # ... (the rest of your code) ...

0
投票

表单的

label_suffix=":"
方法有
__init__
参数 - https://docs.djangoproject.com/en/dev/ref/forms/api/#django.forms.Form.label_suffix 因此,要从标签中删除尾随冒号,您可以在视图中初始化表单时传递
label_suffix=""
,例如:

class SomeView(FormView):
...
    def get_form_kwargs(self):
        kwargs = super().get_form_kwargs()
        kwargs["label_suffix"] = ""
        return kwargs

或者,您可以在表单的

__init__
方法中覆盖此参数:

class SomeForm(forms.Form):
    def __init__(self, *args, **kwargs):
        kwargs["label_suffix"] = ""
        super().__init__(*args, **kwargs)

0
投票

我遇到了同样的问题(输入标签末尾有额外的冒号)。我使用的解决方案是定义表单字段时使用label='',直接在html中写入标签,然后插入表单字段。

© www.soinside.com 2019 - 2024. All rights reserved.