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隐藏冒号?的主要内容,如果未能解决你的问题,请参考以下文章