@howuu

Загрузка картинки, через форму Django?

Работал с документацией, но не решил проблему. Нужно к посту блога отправить картинку

models
from django.db import models
from django.utils import timezone


class Post(models.Model):
    title = models.CharField(max_length=200)
    text = models.TextField()

    image = models.ImageField(null=True, blank=True, upload_to='blog/images/')

    created_date = models.DateTimeField(
            default=timezone.now)
    published_date = models.DateTimeField(
            blank=True, null=True)

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

    def __str__(self):
        return self.title

views:
def post_edit(request, pk):

    post = get_object_or_404(Post, pk=pk)
    if request.method == "POST":
        form = PostForm(request.POST, request.FILES)
        if form.is_valid():
            post = form.save(commit=False)
            post.published_date = timezone.now()
            post.save()
            return redirect('/', pk=post.pk)
    else:
        form = PostForm(request.POST, request.FILES)
    return render(request, 'blog/post_edit.html', {'form': form})


в urls и проекта и приложения блог добавил
if settings.DEBUG:
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

HTML
<h1>Новий пост</h1>

  <div class="col-md-12 col-lg-8 main-content">
            <form method="POST">{% csrf_token %}
                  <div class="row">
                    <div class="col-md-4 form-group">
                      
                      {% render_field form.title type="text" id="name" class="form-control " title="Заголовок" %}
                      
                      </div>
                    
                  </div>





                  <div class="row">
                    <div class="col-md-12 form-group">
                      {% render_field form.text name="message" id="message" class="form-control " %}
                       
                  </div>
                  </div>

                  <div class="row">
                    <div class="col-md-12 form-group">

                  {% render_field form.image %}

                  </div>
                  </div>

                  <div class="row">
                    <div class="col-md-6 form-group">
                      <input type="submit" value="Опубликовать" class="btn btn-primary">
                    </div>
                  </div>
                </form>
</div>

В чем проблема, почему картинка не загружается?
  • Вопрос задан
  • 1751 просмотр
Пригласить эксперта
Ответы на вопрос 1
Ranwise
@Ranwise
'blog/images/' такая папка существует? еще нужно указывать в настройках MEDIA_ROOT, MEDIA_URL
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы