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>