将django小部件从Forms.ModelForm写入Forms.Form

时间:2019-03-21 15:41:05

标签: python django django-forms

我想在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" %} />

0 个答案:

没有答案