Django: как использовать {{кое-что}} внутри файла CSS - PullRequest
1 голос
/ 02 июня 2019

У меня есть модель с именем Post с FileField, которая является изображением.

Я хочу сделать что-то вроде этого:

.article-image{
    background-image: url("../img/{{ post.postimage }});
}

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

<div class="article-image" style="background-image:{% static 'img/{{ post.postimage }}' %}"></div>

, но он тоже не работает.

Как я могу это исправить

1 Ответ

1 голос
/ 02 июня 2019

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

создайте templatetags / my_custom_tag.py в вашем приложении и добавьте в него следующий код.

from django import template
from your_base_app.settings import STATIC_URL

register = template.Library()

@register.simple_tag
def show_image(img):
    return STATIC_URL + 'img/' + img;

вы должны загрузить свои теги в верхнюю часть шаблона django следующим образом

{% load my_custom_tag %}

ваш шаблон django должен быть таким

<div class="article-image" style="background-image:url({% show_image post.postimage.url %})"></div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...