我正在尝试这样做:
类 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,但在初始文本中保留符号“:”。
如何去掉冒号?
这对我来说对 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...
您必须在初始化时覆盖
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) ...
表单的
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)
我遇到了同样的问题(输入标签末尾有额外的冒号)。我使用的解决方案是定义表单字段时使用label='',直接在html中写入标签,然后插入表单字段。