Django обновление изображения
Не получается обновить картинку через сайт, при этом логин и мыло обновляются, через админку проблем нету. Также при регистрации, не загружается изображение, ставится изображение по дефолту. Нашел решение где вьюшка написана через функцию, работает, но хочется найти проблему в моем коде.
Есть модель:
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
img = models.ImageField('Фото пользователя', default='default_user.png', upload_to='user_images')
def __str__(self):
return f'Профайл пользователя {self.user.username}'
def save(self, *args, **kwargs):
super().save()
image = Image.open(self.img.path)
if image.height > 256 or image.width > 256:
resize = (256, 256)
image.thumbnail(resize)
image.save(self.img.path)
class Meta:
verbose_name = 'Профайл'
verbose_name_plural = 'Профайлы'
Форма:
class UserEditForm(forms.ModelForm):
email = forms.EmailField(
label='Введите новый Email',
required=False,
widget=forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'Введите Email'})
)
username = forms.CharField(
label='Введите новый логин',
required=False,
help_text='Нельзя вводить символы: @, /, _',
widget=forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'Введите логин'})
)
img = forms.ImageField(
label='Загрузить новую фотографию',
required=False,
widget=forms.FileInput
)
class Meta:
model = Profile
fields = ['username', 'email', 'img']
Вьюшка:
class UserEditProfile(LoginRequiredMixin, UpdateView):
template_name = 'users/edit_profile.html'
form_class = UserEditForm
success_url = '/profile/'
def get_object(self):
return get_object_or_404(User, pk=self.request.user.id)
Html файл:
{% block content %}
<form method="post" enctype="multipart/form-data" class="form-register mt-4">
{% csrf_token %}
{{ form.as_p }}
<button class="btn btn-outline-primary" type="submit">Обновиться</button>
{% endblock %}