изменения изображения работают в django admin, но когда я пытаюсь изменить то же самое в html форме, отражаются все другие изменения, кроме поля изображения.
views.py
def edit_profile(request):
if request.method == 'POST':
form = EditProfileForm(request.POST, instance=request.user.userprofile)
if form.is_valid():
form.save()
return redirect('view_profile')
else:
form = EditProfileForm(instance=request.user.userprofile)
args = {'form': form}
return render(request, 'post/update_profile.html', args)
update_profile. html
{% extends "post/header.html"%}
{% block content %}
<div class="container">
<form method="post" enctype='multipart/form-data'>
{% csrf_token %}
<p >Bio: {{ form.bio }}</p>
<p> Phone {{ form.phone }}</p>
<p> Website : {{ form.website }} </p>
<p> Image : {{ form.image }}</p>
<button type="submit">Submit</button>
</form>
<br>
</div>
{% endblock content %}
forms.py
class EditProfileForm(UserChangeForm):
class Meta:
model = UserProfile
fields = (
'bio',
'phone',
'website',
'image',
)
model.py
class UserProfile(models.Model):
user = models.OneToOneField(User, on_delete = models.CASCADE)
bio = models.CharField(max_length=100, default='',blank = True)
website = models.URLField(default='',blank = True)
phone = models.IntegerField(default=0,blank = True)
image = models.ImageField(upload_to='profile_image',default = 'octocat.png')
def __str__(self):
return self.user.username
def create_profile(sender, **kwargs):
if kwargs['created']:
user_profile = UserProfile.objects.create(user=kwargs['instance'])
post_save.connect(create_profile, sender=User)