django - Django 在其他字段中形成所有更改,除了图像字段正在工作
问题描述
图像更改在 django admin 中起作用,但是当我尝试在 html 表单中更改相同时,除了图像字段之外的所有其他更改都被反映。
视图.py
def edit_profile(request):
if request.method == 'POST':
form = EditProfileForm(request.POST, instance=request.user.userprofile)
if form.is_valid():
form.save()
return redirect('view_profile')
else:
form = EditProfileForm(instance=request.user.userprofile)
args = {'form': form}
return render(request, 'post/update_profile.html', args)
update_profile.html
{% extends "post/header.html"%}
{% block content %}
<div class="container">
<form method="post" enctype='multipart/form-data'>
{% csrf_token %}
<p >Bio: {{ form.bio }}</p>
<p> Phone {{ form.phone }}</p>
<p> Website : {{ form.website }} </p>
<p> Image : {{ form.image }}</p>
<button type="submit">Submit</button>
</form>
<br>
</div>
{% endblock content %}
表格.py
class EditProfileForm(UserChangeForm):
class Meta:
model = UserProfile
fields = (
'bio',
'phone',
'website',
'image',
)
模型.py
class UserProfile(models.Model):
user = models.OneToOneField(User, on_delete = models.CASCADE)
bio = models.CharField(max_length=100, default='',blank = True)
website = models.URLField(default='',blank = True)
phone = models.IntegerField(default=0,blank = True)
image = models.ImageField(upload_to='profile_image',default = 'octocat.png')
def __str__(self):
return self.user.username
def create_profile(sender, **kwargs):
if kwargs['created']:
user_profile = UserProfile.objects.create(user=kwargs['instance'])
post_save.connect(create_profile, sender=User)
解决方案
视图.py
由于您正在尝试存储文件,因此在请求中您还需要提供request.FILES
。
def edit_profile(request):
if request.method == 'POST':
form = EditProfileForm(request.POST,request.FILES, instance=request.user.userprofile)
if form.is_valid():
form.save()
return redirect('view_profile')
else:
form = EditProfileForm(instance=request.user.userprofile)
args = {'form': form}
return render(request, 'post/update_profile.html', args)
推荐阅读
- javascript - 如何列出 listUsers Cognito 身份服务提供者?
- r - Travis CI 在 R 包子目录中找不到头文件
- python - 如何使用没有年份的 datetime_range 创建每小时列表
- python - 为什么我的 python 变量在递归期间全局作用?
- javascript - 使用 agora.io 发布流
- python - 如何使用 urllib 解析 url 但在文本提示中输入多个 url?
- c# - 未处理的异常:System.OutOfMemoryException:'内存不足。'
- java - 是什么导致我在 RecyclerView 中滚动性能不佳?
- asp.net-mvc - 过滤器后的asp.net核心验证
- xamarin - “Xamarin 模板插件”不存在