Чуваки , помогите, уже 2 часа пытаюсь решить проблему. Вообщем, у меня есть возможность добавлять аватары в профиль. Это происходит спомощью url, но мне нужно, чтобы аватар можно было просто загрузить, без url.
Моя модель профиля:
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
avatar = models.URLField()
rating = models.IntegerField(blank=True, null=True)
@receiver(post_save, sender=User)
def create_user_profile(sender, instance, created, **kwargs):
if created:
Profile.objects.create(user=instance)
@receiver(post_save, sender=User)
def save_user_profile(sender, instance, **kwargs):
instance.profile.save()
Форма:
class Change_avatar(forms.Form):
new_avatar = forms.URLField(help_text='Например:
https://image.01.jpg')
Представление во views:
def change_avatar_create(request):
user = request.user
if request.method == "POST":
user.profile.avatar = request.POST.get('new_avatar')
user.save()
return HttpResponseRedirect("/")
Шаблон формы:
<div class="d-flex justify-content-center">
<form method="POST" action="change_avatar_create/" novalidate>
{% csrf_token %}
<table>
{{ change|crispy }}
</table>
<button type="submit" class="btn btn-primary">Подтвердить</button>
</form>
</div>