我正在嘗試上傳圖片。這是用戶個人資料的頭像圖片。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'沒有任何保存方法。這就是你得到這個錯誤的原因。 –