我正在尝试上传图片。这是用户个人资料的头像图片。Django图片上传问题
目前,表单没有返回错误,但我的数据库或我的文件夹media/avatar /上没有写入任何内容。
怎么了?
我的观点:
def view_avatar(request):
if request.method == 'POST':
form = UploadFileForm(request.POST, request.FILES, instance=request.user.profile)
if form.is_valid():
form.save()
else:
form = UploadFileForm(instance=request.user.profile)
return render(request, 'avatar.html', locals())
我的形式:
class UploadFileForm(forms.ModelForm):
class Meta:
model = Profile
fields = ('avatar',)
我的模型:
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
birthdate = models.DateField(null=True, blank=True)
avatar = models.ImageField(upload_to='media/avatar/', blank=True, null=True)
您是否在代码中验证表单后添加了'form.save()'。它不在你提供的代码片段中。 –
没有在这个代码Ididn't。但是当我添加它时,我有一个错误:UploadFileForm'对象没有'保存'属性。我现在更新我的代码。 – GrandGTO
您应该使用'ModelForm'或编写自定义保存方法。 'forms.Form'没有任何保存方法。这就是你得到这个错误的原因。 –