gpt4 book ai didi

python - 图像未在 Django 中更新

转载 作者:行者123 更新时间:2023-12-05 06:07:25 28 4
gpt4 key购买 nike

请帮帮我。我正在尝试更新用户名和电子邮件已更新但图像未更新的配置文件。我的代码是....

profile.html

    <form method="POST" enctype="multipart/form-data">
{% csrf_token %}
<fieldset class="form-group">
<legend class="border-bottom mb-4">Profile Info</legend>
{{ u_form|crispy }}
{{ p_form|crispy }}
</fieldset>
<br>
<div class="form-group">
<button class="btn btn-outline-info" type="submit">Update</button>
</div>
</form>

views.py

@login_required
def profile(request):
if request.method == 'POST':
u_form = UserUpdateForm(request.POST, instance=request.user)
p_form = ProfileUpdateForm(request.FILES, instance=request.user.profile)
if u_form.is_valid() and p_form.is_valid():
u_form.save()
p_form.save()
messages.success(request, f'Account Successfully Updated!')
return redirect('profile')

else:
u_form = UserUpdateForm(request.POST, instance=request.user)
p_form = ProfileUpdateForm(request.POST, instance=request.user.profile)

context = {
'u_form' : u_form,
'p_form' : p_form
}
return render(request, 'users/profile.html', context)

表单.py

class ProfileUpdateForm(forms.ModelForm):
class Meta:
model = Profile
fields = ['image']

最佳答案

我认为您的问题在于 views.py。

首先,您正在检查检索 View 的方法是否为 POST。如果不是,则您正在使用不存在的 POST 数据初始化表单。我在下面为您简化了这一点。

其次,您没有将 POST 信息传递给第二个表单,只有文件部分。您是否尝试过更改 p_form 以采用如下两个参数?

@login_required
def profile(request):
if request.method == 'POST':
u_form = UserUpdateForm(request.POST, instance=request.user)
p_form = ProfileUpdateForm(request.POST, request.FILES, instance=request.user.profile)
if u_form.is_valid() and p_form.is_valid():
u_form.save()
p_form.save()
messages.success(request, f'Account Successfully Updated!')
return redirect('profile')

else:
u_form = UserUpdateForm(instance=request.user)
p_form = ProfileUpdateForm(instance=request.user.profile)

context = {
'u_form' : u_form,
'p_form' : p_form
}
return render(request, 'users/profile.html', context)

关于python - 图像未在 Django 中更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65439478/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com