2015-03-30 5 views
1

Я пытаюсь определить, загрузил ли пользователь изображение после отправки данных через форму.Как я могу определить внутри шаблона, было ли загружено изображение?

Скажем, у меня есть модель:

class Book(models.Model): 
    cover_image = models.ImageField(upload_to="foo/bar/fun") 

Крышку изображение не требуется, поэтому этот объект может быть создан без значения cover_image.

Теперь, в шаблоне, я хочу проверить, есть ли загруженный файл. Если нет загруженного файла, должен отображаться фрагмент HTML по умолчанию. Мой первоначальный подход, похоже, не работает, и я застрял. По какой-то причине область изображения отображается так, как будто изображение отображается, когда нет; вместо этого отображается текст alt. Что должно быть на самом деле отображается это другой кусок HTML, например, так:

{% if my_book_context_object.cover_image %} 
<img src="the image"></img> 
{% else %} 
<img src="placeholder image"></img> 
{% endif %} 

я рассматривал, что я мог бы проверить внутри метода модели, но я не совсем уверен, что для проверки:

class Book(models.Model): 
    cover_image = models.ImageField(upload_to="foo/bar/fun") 

    def has_cover_image(self): 
     ...unknown check logic... 
     return True or False 
+0

Вы можете проверить следующее: 'bool (self.cover_image)' –

+0

@FatihErikli Это не сработало. –

ответ

0

Не нужно проверять, есть ли у вас образ, я думаю.

Вы можете по умолчанию использовать изображение в своей модели. По умолчанию, если никто не загружает изображение, будет отображаться изображение по умолчанию. Когда вы загружаете, маршрут изменяется.

class Book(models.Model): 
    cover_image = models.ImageField(upload_to='foo/bar/fun', default='foo/bar/fun/taco.jpg') 

По моему мнению, ваш код должен работать, я не знаю, почему это не так. Вы shuold напишите, какую ошибку вы получаете.

+0

Но я не хочу, чтобы было изображение по умолчанию. Пользователю ** не нужно загружать изображение со своим сообщением. Не должно быть умолчаний. –

+0

Я не понимаю. Если пользователь не загружает изображение, в любом случае будет образ по умолчанию. – LaraChicharo

+0

Предположим, что пользователь не хочет прикреплять изображение к своему сообщению. Мне нужно проверить это условие. –