python - 即使更改小部件后,Django Clear Field 也不会消失
问题描述
我正在尝试为edit_profile
我创建的 CustomUser 创建一个页面。我正在使用UserChangeForm
. 但我注意到,即使我在 Meta 类中更改了小部件(如本问题中所述),仍会显示 clear 字段。
表格.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(),
}
视图.py
class EditProfileView(UpdateView):
model = User
template_name = 'edit_profile.html'
fields = ('email', 'first_name', 'last_name', 'display_name', 'profile_picture')
edit_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>
如何删除清除字段?
解决方案
您需要指定一个表单域 ( 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',
)
推荐阅读
- monitoring - sensu go中是否有像sensu core这样的刷新和出现字段?
- java - 使用“wrap”函数创建时出现 Spring RSocketRequester 问题
- excel - 使用多行和多列调整 Excel 表格的大小 - VBA
- python - Django DRF:如何显示过滤后的数据
- javascript - 捕获 iframe 上的点击事件
- database - 将多个数据库合并到一个数据库中,没有任何重复条目
- python - 这个 Python 类型提示语法是什么,括号中的两种类型?
- typescript - 在打字稿中使用带有接口的默认值
- java - 如何授予对 JAR 文件的基于角色的访问权限
- laravel - Laravel 什么时候应该扩展或包含或编写双重代码?