我想在forms.py文件中使用自定义窗口小部件。我使用forms.ModelForm
类为Meta
编写了此小部件。但是我想为forms.Form
写同样的东西。
这是我的forms.py文件:
class CustomFileInput(forms.widgets.ClearableFileInput):
template_name = 'app/widgets/clearable_file_input.html'
class FileUploadForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
class Meta:
model = FileUpload
fields = ['file', 'site']
widgets = {
'file': CustomFileInput(attrs={'class': 'clearablefileinput'})
}
我该如何写这样的东西:
class CustomFileInput(forms.widgets.ClearableFileInput):
template_name = 'app/widgets/clearable_file_input.html'
class FileUploadForm(forms.Form):
file = forms.FileField(required=True, label=_('File upload'), widget=CustomFileInput())
site = forms.CharField(...)
目前尚无法解决。
我的窗口小部件文件如下:
{% if widget.is_initial %}{{ widget.initial_text }}: <a href="{{ widget.value.url }}" target="_blank">{{ widget.value }}</a>{% if not widget.required %}
<input type="checkbox" name="{{ widget.checkbox_name }}" id="{{ widget.checkbox_id }}" />
<label for="{{ widget.checkbox_id }}">{{ widget.clear_checkbox_label }}</label>{% endif %}<br />
{{ widget.input_text }}:{% endif %}
<input type="{{ widget.type }}" name="{{ widget.name }}"{% include "django/forms/widgets/attrs.html" %} />