Python Django Clear字段即使在更改小部件后也不会消失
我正在尝试为我创建的CustomUser创建一个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
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',
)