Почему django не загружает картинку?

При написании статьи я могу по желанию загрузить изображение, но, когда я это делаю, ничего не происходит settings.py

STATIC_ROOT = os.path.join(BASE_DIR, 'static/')
STATIC_URL = '/static/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media/')
MEDIA_URL = '/media/'

detail.html

  <img src="{% if article.image %}{{ article.image.url }}{% endif %}">

models.html

class Article(models.Model):
    title = models.CharField(max_length=50)
    text = models.TextField()
    image = models.ImageField(blank=True, upload_to='images/%Y/%m/%d')
    file = models.FileField(blank=True)

urls.py

if settings.DEBUG:
    urlpatterns += static(settings.MEDIA_URL,
                          document_root=settings.MEDIA_ROOT)

forms.py

class ArticleForm(ModelForm):
    class Meta:
        model = Article
        fields = ['title', 'text', 'image','file']

views.py

def detail(request, pk):
    article = get_object_or_404(Article, pk=pk)
    return render(request, 'content/detail.html',
        {'article': article})

def list(request):
  return render(request, 'content/list.html', {
    'articles': Article.objects.all()
  })

def create_article(request):
    if request.method == 'POST':
        form = ArticleForm(request.POST)
        if form.is_valid():
            form.save()
            return redirect('list')
    else:
        form = ArticleForm()
    return render(request, 'content/create.html', {'form': form})

create.html

{% extends "base.html" %}

{% block title %}
  create article
{% endblock %}
{% block content %}
  <form action="." method="post" enctype="multipart/form-data">
    {{ form.as_p }}
    {% csrf_token %}
    <p><input type="submit" value="Save"></p>
  </form>
{% endblock %}

Ответы (1 шт):

Автор решения: Zhenia Kviatkivskyi

Разобрался с вашей задачей.

Первый шаг: create.html

<form action="/content/create/"

Как я и говорил в атрибуте action должна быть ссылка на метод обработки формы.

Второй шаг: views.py

form = ArticleForm(request.POST,files=request.FILES)

Забыли обязательный аргумент, если мы что то загружаем files=request.FILES.

Третий шаг: detail.html

 <img src="{{ MEDIA_URL }}{{ article.image.url }}">

У меня ваш проект из репозитория работает, появляется папка и в ней загруженные файлики и фото выводится в шаблоне.

→ Ссылка