我用配置文件模型扩展了django User模型。我要添加更新用户的个人资料功能。因为我将B
字段设为唯一字段,所以在我的更新视图功能中,更新表单的A
始终为num
。我也无法更新照片png?这是我的代码;
型号:
is_valid
表格:
False
观看次数:
class Profile(models.model):
user = models.OneToOneField(User,on_delete=models.CASCADE)
num =models.CharField('identity',max_length=254,unique=True)
photo = models.ImageField('image',upload_to = 'images/licences')
模板
class ProfileForm(forms.ModelForm):
class Meta:
model= Profile
fields = ['num','photo']
答案 0 :(得分:1)
由于num
字段是唯一的,并且在更新个人资料图像时不会再次生成,因此您可以忽略request.POST
并将instance
参数传递给ProfileForm
类。
示例:
def modify_view(request):
user = request.user
if request.method=="POST":
user_profile = Profile.objects.get(user=user)
form = ProfileForm(files=request.FILES, instance=user_profile)
if form.is_valid():
user_profile.image = form.clean_data['image']
user_profile.save()
else:
form = ProfileForm()
return render(request,"profile.html",{form:form}