ImageField () does not save images in ModelForm - Django / Python

When I try to load an image from my form, all processes are processed, but the image is not saved.

Does anyone know why this is happening?

Thanks in advance!

models.py:

class Photo(models.Model): user = models.ForeignKey(MyUser, null=False, blank=False) category = models.ForeignKey("Category", default=1, null=True, blank=True) title = models.CharField(max_length=30, null=True, blank=True) description = models.TextField(max_length=120, null=True, blank=True) image = models.ImageField(upload_to='user/photos/', null=True, blank=True) slug = models.SlugField(null=True, blank=True) active = models.BooleanField(default=True) timestamp = models.DateTimeField(auto_now_add=True, auto_now=False, null=True) updated = models.DateTimeField(auto_now_add=False, auto_now=True, null=True) class Meta: unique_together = ('slug', 'category') ordering = ['-timestamp'] def __unicode__(self): return "%s" %(self.user) 

views.py:

 def photo_upload_view(request, username): u = MyUser.objects.get(username=username) if request.method == 'POST': form = PhotoUploadForm(request.POST, request.FILES) if form.is_valid(): form.save() messages.success(request, "Thank you! You have successfully posted your picture!") return HttpResponseRedirect('/') else: form = PhotoUploadForm() submit_btn = "Upload Post" context = { "form": form, "submit_btn": submit_btn } return render(request, "photos/photo_upload.html", context) 

forms.py:

 class PhotoUploadForm(forms.ModelForm): class Meta: model = Photo fields = ('user', 'category', 'title', 'description', 'image') 

.html

 <form method='POST' action='{{ action_url }}'>{% csrf_token %} {{ form|crispy }} <input class='btn btn-default {{ submit_btn_class }}' type='submit' value='{{ submit_btn }}'/> </form> 
+6
source share
1 answer

You must add the attribute enctype=multipart/form-data <form> :

 <form method='POST' action='{{ action_url }}' enctype='multipart/form-data'> 
+11
source

Source: https://habr.com/ru/post/984055/


All Articles