Если еще код не работает в layout.html django - PullRequest
0 голосов
/ 01 июля 2019

Я пытаюсь реализовать приложение блога с django. На домашней странице будет список сообщений. "Post.author.profile.image" - это путь для загрузки изображения из базы данных. "post.author.profile.image" - это None, мне нужно загрузить альтернативное изображение, и если оно существует, оно должно загрузить изображение из базы данных. Так что я попробовал следующий код:

 def homepage(request):
    post= Post.objects.all().order_by('-date')
    return render(request,'layout.html',{'posts':post})

 layout.html

 {% for post in posts %}
    <div class="list">
        <div class="con">
            {% if "post.author.profile.image.url" is None %}
            <img src="{% static 'images/b.png' %}" class='logo3'/>
            {% else %}
            <img src="{{ post.author.profile.image.url }}" class='logo3'/>
            {% endif %}
        </div>
    </div>
  {% endfor %}

После запуска сервера, если я нажимаю на кнопку, проверьте путь в src тега изображения - media / None. Код в if даже не работает. В чем проблема в моем коде?

Ответы [ 4 ]

1 голос
/ 01 июля 2019

Как насчет проверки, существует ли изображение?

{% if post.author.profile.image %}
    <img src="{{ post.author.profile.image.url }}" class='logo3'/>
{% else %}
    <img src="{% static 'images/b.png' %}" class='logo3'/>
{% endif %}
0 голосов
/ 01 июля 2019

Здесь

{% if "post.author.profile.image.url" is None %}

вы проверяете, является ли литеральная строка "post.author.profile.image.url" None - что гарантированно будет ложным, поскольку литеральная строка никогда не будет None.

Вы хотите саму переменную:

{% if post.author.profile.image.url is None %}
0 голосов
/ 01 июля 2019
 {% if post.author.profile.image == 'null' %}
  <img src="{% static 'images\b.jpg' %}" class="logo3">
 {% else %}
  <img src="{{post.author.profile.image.url}}" class="logo3">
 {% endif %}

Мне все еще интересно, как этот код работал. Я пробовал это раньше, но в то время он не работал, возможно, я сделал бы какую-то другую ошибку. Но этот код работает.

0 голосов
/ 01 июля 2019

Попробуйте это

{% if post.author.profile.image.url %}
    <img src="{{ post.author.profile.image.url }}" class='logo3'/>
{% else %}
    <img src="{% static 'images/b.png' %}" class='logo3'/>
{% endif %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...