не добавляется картинка в бд только выводится дефолтная из бд
{% csrf_token %}
<div class="modal-body">
<div class="mb-3">
<div class="mb-3">
<label for="formFileSm" class="form-label">Главное фото профиля</label>
<input class="form-control form-control-sm" name="myfile1" id="formFileSm" type="file">
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Отмена</button>
<button type="submit" class="btn btn-primary">Сохранить</button>
</div>
</form>
(это views.py)
def mprofil(request):
if request.method == 'POST':
profile_form = UpdateProfileForm(request.POST, request.FILES)
if profile_form.is_valid():
profile_form.save()
messages.success(request, 'Your profile is updated successfully')
return redirect('mprofil')
return render(request, 'board/mprofil.html'
(это views.py/\)
class Profile(models.Model):
BLOOD_TYPES_CHOICES = [('В активном поиске', 'В активном поиске'),('Встречаюсь', 'Встречаюсь'),('Женат', 'Женат'),('Замужем', 'Замужем'),('Всё сложно', 'Всё сложно'),]
operat = Sitylist.objects.all()
INTEGER_CHOICES= [tuple([str(x.sityname), str(x.sityname)]) for x in operat]
avatar = models.ImageField(default='default.jpg', upload_to='profile_images')
user = models.OneToOneField(User, on_delete=models.CASCADE)
birth_date = models.DateField(null=True, blank=True)
osebe = models.TextField(max_length=300, blank=True)
sity = models.TextField('sity', max_length=30,blank=False,choices=INTEGER_CHOICES)
blood_type = models.CharField('Blood Type', max_length=20,blank=False,choices=BLOOD_TYPES_CHOICES)
def __str__(self):
return self.user.username
def save(self, *args, **kwargs):
super().save()
img = Image.open(self.avatar.path)
if img.height > 100 or img.width > 100:
new_img = (100, 100)
img.thumbnail(new_img)
img.save(self.avatar.path)
(это models.py /\)
class UserForm(forms.ModelForm):
class Meta:
model = User
fields = ('last_name', 'first_name', 'email',)
widgets = {
'last_name': forms.TextInput(attrs={'class': 'form-control'}),
'first_name': forms.TextInput(attrs={'class': 'form-control'}),
'email': forms.TextInput(attrs={'class': 'form-control '}),
}
class ProfileForm(forms.ModelForm):
class Meta:
model = Profile
fields = ('sity', 'birth_date','blood_type','osebe',)
widgets = {
'blood_type': forms.Select(attrs={'class': 'form-control'}),
'sity': forms.Select(attrs={'class': 'form-control'}),
'birth_date': forms.DateInput(attrs={'type': 'date', 'placeholder': 'yyyy-mm-dd (DOB)', 'class': 'form-control'}),
'osebe': forms.Textarea(attrs={'class': 'form-control','rows':'4','style':'resize:none'}),
}
class UpdateProfileForm(forms.ModelForm):
avatar = forms.ImageField(widget=forms.FileInput(attrs={'class': 'form-control-file'}))
class Meta:
model = Profile
fields = ['avatar',]
(это forms.py /\) ```
Источник: Stack Overflow на русском