Czesc wszystkim.
Jest to moj pierwszy post. Zaczalem przygode z Django i napotkalem pierwszy problem w zwiazku z czym bardzo prosze o pomoc :)

Z poziomu administratora w Django jestem w stanie ladowac zdjęcia na serwer, jednak z formularza na stronie jest to niemożliwe.
Jedyne zdjęcie, które można przesłać za pomoca formularza, to domyślne zdjęcie, które ustawiłem w pliku models (default="user.jpg").
Jeśli usunę opcje domyślnego zdjęcia z models i zaladuje dowolne zdjęcie za pomoca formularza to wyskakuje ponizszy błąd:

Error during template rendering
The 'image' attribute has no file associated with it.
error at line 10

3 {% block content %}
4 	        {% for post in posts %}
5 	        <div class="post">
6 	            <div class="data">
7 	            <p>Published: {{ post.publish_date }}</p>
8 	            </div>
9 	        <h2><a href="{% url 'post_detail' pk=post.pk %}">{{ post.title }}</a></h2>
10 	            <img src="{{ post.image.url }}" alt="Image" width="100">
11 	        <em>{{ post.text|linebreaksbr }}</em>
12 	        </div>
13 	        {% endfor %}
14 {% endblock %}

Zamieszczam ponizej zawartosc najwazniejszych plikow skladajacych sie na cala aplikacje:

models.py

class Post(models.Model):
    author = models.ForeignKey('auth.User', on_delete=models.CASCADE)
    title = models.CharField(max_length=200)
    text = models.TextField()
    created_date = models.DateTimeField(default=timezone.now)
    publish_date = models.DateTimeField(blank=True, null=True)
    image = models.ImageField(upload_to='images/', blank=True, null=True, default='images/user.jpg')

    def publish(self):
        self.publish_date = timezone.now()
        self.save()

    def __str__(self):
        return self.title

views.py

class Image(TemplateView):
    form = PostForm
    template_name = 'blog/image.html'

    def post(self, request, *args, **kwargs):
        form = PostForm(request.POST, request.FILES)
        if form.is_valid():
            obj = form.save()
            return HttpResponseRedirect(reverse_lazy('image_display', kwargs={'pk': obj.id}))

        context = self.get_context_data(form=form)
        return self.render_to_response(context)

    def get(self, request, *args, **kwargs):
        return self.post(request, *args, **kwargs)


class ImageDisplay(DetailView):
    model = Post
    template_name = 'blog/image_display.html'
    context_object_name = 'image'


def post_list(request):
    posts = Post.objects.filter(publish_date__lte=timezone.now()).order_by('publish_date')
    return render(request, 'blog/post_list.html', {'posts': posts})


def post_detail(request, pk):
    post = get_object_or_404(Post, pk=pk)
    return render(request, 'blog/post_detail.html', {'post': post})


def error_404_view(request, exception):
    data = {"name": "Blog for programmers"}
    return render(request, 'blog/404.html', data)


def post_new(request):
    if request.method == "POST":
        form = forms.PostForm(request.POST, request.FILES)
        if form.is_valid():
            post = form.save(commit=False)
            post.author = request.user
            post.publish_date = timezone.now()
            post.save()
            return redirect('post_detail', pk=post.pk)
    else:
        form = PostForm()
    return render(request, 'blog/post_edit.html', {'form': form})

forms.py

class PostForm(forms.ModelForm):
    class Meta:
        model = Post
        fields = ['title', 'text', 'image']

post_detail.html

{% block content %}
    <div class="post">
        {% if post.published_date %}
        <div class="date">
            {{ post.published_date }}
        </div>
        {% endif %}
        <h2>{{ post.title }}</h2>
        <img src="{{ post.image.url }}" alt="Image" width="250">
        <p>{{ post.text|linebreaksbr }}</p>
    </div>
{% endblock %}

post_list.html

{% block content %}
    {% for post in posts %}
    <div class="post">
        <div class="data">
        <p>Published: {{ post.publish_date }}</p>
        </div>
    <h2><a href="{% url 'post_detail' pk=post.pk %}">{{ post.title }}</a></h2>
        <img src="{{ post.image.url }}" alt="Image" width="100">
    <em>{{ post.text|linebreaksbr }}</em>
    </div>
    {% endfor %}
{% endblock %}