Django 形式。如何从initial_text隐藏冒号?

Posted

技术标签:

【中文标题】Django 形式。如何从initial_text隐藏冒号?【英文标题】:Django form. How hide colon from initial_text? 【发布时间】:2017-01-28 21:33:33 【问题描述】:

我正在尝试这样做:

类 NoClearableFileInput(ClearableFileInput): 初始文本 = '' 输入文本 = '' 类 ImageUploadForm(forms.ModelForm): title = forms.CharField(label="TITLE", required=False,widget=forms.TextInput(attrs='placeholder': 'name'), label_suffix="") image = forms.ImageField(label='NEW FILE',widget=NoClearableFileInput, label_suffix="") 元类: 模型 = 图片 字段=('标题','图像')

在类 NoClearableFileInput 中有清理值 initial_text。 在 'title' 和 'image' 字段中使用 label_suffix,但从 initial_text 开始保留符号“:”。

result

如何去掉冒号?

【问题讨论】:

【参考方案1】:

表单的__init__ 方法有label_suffix=":" 参数-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)

【讨论】:

【参考方案2】:

这对我来说只适用于 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...

【讨论】:

【参考方案3】:

您必须在初始化时覆盖 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) ...

【讨论】:

这没有帮助。冒号形式的 initial_text 不隐藏。

以上是关于Django 形式。如何从initial_text隐藏冒号?的主要内容,如果未能解决你的问题,请参考以下文章

如何以特定的 django 形式执行此操作?

从 django 表单获取会话值

如何从 django shell 创建用户

从模型形式 Django 保存数据

如何从 Bootstrap 的模态形式发布数据?

如何在django中保存多个到多个字段