Python Django Clear字段即使在更改小部件后也不会消失

Python Django Clear字段即使在更改小部件后也不会消失,python,django,django-forms,django-views,Python,Django,Django Forms,Django Views,我正在尝试为我创建的CustomUser创建一个edit_profile页面。我正在使用UserChangeForm。但是我注意到,即使我在Meta类中更改小部件(如这里所指定的),clear字段仍然显示 forms.py class UserChangeForm(forms.ModelForm): profile_picture = forms.FileInput() class Meta: model = User fields = ('em

我正在尝试为我创建的CustomUser创建一个
edit_profile
页面。我正在使用
UserChangeForm
。但是我注意到,即使我在Meta类中更改小部件(如这里所指定的),clear字段仍然显示

forms.py

class UserChangeForm(forms.ModelForm):
    profile_picture = forms.FileInput()

    class Meta:
        model = User
        fields = ('email', 'password', 'first_name', 'last_name', 'display_name', 'profile_picture', 'is_active', 'is_staff', 'is_superuser')
                
        widgets = {
            'profile_picture': forms.FileInput(),
       }
            

class EditProfileView(UpdateView):
    model  = User    
    template_name = 'edit_profile.html'
    fields = ('email', 'first_name', 'last_name', 'display_name', 'profile_picture')     
视图.py

class UserChangeForm(forms.ModelForm):
    profile_picture = forms.FileInput()

    class Meta:
        model = User
        fields = ('email', 'password', 'first_name', 'last_name', 'display_name', 'profile_picture', 'is_active', 'is_staff', 'is_superuser')
                
        widgets = {
            'profile_picture': forms.FileInput(),
       }
            

class EditProfileView(UpdateView):
    model  = User    
    template_name = 'edit_profile.html'
    fields = ('email', 'first_name', 'last_name', 'display_name', 'profile_picture')     
编辑_profile.html

<form method="post" enctype="multipart/form-data" id="formUpload">
    {% csrf_token %}

     {% for field in form %}
         {{ field|add_class:"form-control-sm"|as_crispy_field }}
     {% endfor %}       

     <button class="btn btn-sm btn-primary" type="submit">Update Profile</button>
</form>

{%csrf_令牌%}
{%形式的字段为%}
{field | add|class:“form control sm”| as|u crispy_field}
{%endfor%}
更新配置文件

如何删除清除字段?

您需要指定一个表单字段(
forms.FileField
),然后指定一个小部件(
widgets.FileInput
)。 你链接的问题有正确的方法,但似乎你复制了错误的答案

您的代码应该如下所示:

from django import forms
from django.forms import widgets

class UserChangeForm(forms.ModelForm):
    profile_picture = forms.FileField(widget=widgets.FileInput)

    class Meta:
        model = User
        fields = (
            'email', 'password', 'first_name', 'last_name', 'display_name',
            'profile_picture', 'is_active', 'is_staff', 'is_superuser',
        )