Не сохраняется аватар через форму
Загружаю фотографию через форму, страница обновляется, а аватар не меняется
models py:
class Profile(models.Model):
user = models.OneToOneField(User, null=True, on_delete=models.CASCADE)
email = models.CharField(max_length=200, null=True)
bio = models.TextField(null=True, blank=True)
profile_pic = models.ImageField(null=True, blank=True, upload_to="cabinet/img/")
vk = models.CharField(max_length=50, null=True, blank=True)
instagram = models.CharField(max_length=50, null=True, blank=True)
def __str__(self):
return self.user
forms.py
class UpdateUserForm(forms.ModelForm):
username = forms.CharField(max_length=100,
required=True,
widget=forms.TextInput(attrs={'class': 'form-control'}))
email = forms.EmailField(required=True,
widget=forms.TextInput(attrs={'class': 'form-control'}))
class Meta:
model = User
fields = ['username', 'email']
class UpdateProfileForm(forms.ModelForm):
avatar = forms.ImageField(widget=forms.FileInput(attrs={'class': 'form-control-file'}), required=False)
bio = forms.CharField(widget=forms.Textarea(attrs={'class': 'form-control', 'rows': 5}), required=False)
class Meta:
model = Profile
fields = ['avatar', 'bio']
views.py
@login_required
def profile(request):
user = Profile.objects.all()
if request.method == 'POST':
user_form = UpdateUserForm(request.POST, instance=request.user)
profile_form = UpdateProfileForm(request.POST, request.FILES, instance=request.user.profile)
if user_form.is_valid() and profile_form.is_valid():
user_form.save()
profile_form.save()
messages.success(request, 'Ваш профиль успешно обновлен и ')
return redirect(to='users-profile')
else:
user_form = UpdateUserForm(instance=request.user)
profile_form = UpdateProfileForm(instance=request.user.profile)
return render(request, 'cabinet/user_profile.html',
{'user_form': user_form, 'profile_form': profile_form, 'user1': user})