2017-10-18 23 views
1

我嘗試插入用戶先前在css文件中註冊的圖像。如何在css django 1.11.x中設置模型的圖像?

我的模型

class Basics(models.Model): 
    ... 
    logo = models.ImageField('Logo') 
    ... 

我context_processors

# -*- conding:utf-8 -*- 

from .models import Basics 

def general(request): 
    try: 
     sitebasics = Basics.objects.get(pk=1) 
    except: 
     sitebasics = False 
    context = { 
     'sitebasics': sitebasics, 
    } 
    return context 

我的CSS文件

{% load thumbnail %} 

    ... 

    .header-full-title { 
    float: left; 
    overflow: hidden; 
    padding-left: 75px; 
    background-image: url("{{ sitebasics.logo|thumbnail_url:'logo_large' }}"); 
    background-repeat: no-repeat; 
    background-position: left center; 
    } 

和輸出檢查HTML是:

.header-full-title { 
    float: left; 
    overflow: hidden; 
    padding-left: 75px; 
    background-image: url({{ sitebasics.logo|thumbnail_url:'logo_large' }}); 
    background-repeat: no-repeat; 
    background-position: left center; 

所以在渲染時不要放置圖像的路徑,請將{{ sitebasics.logo|thumbnail_url:'logo_large' }}作爲來自css的原始文本。

如何在呈現HTML時在CSS文件中加載圖像?

+0

這通常不是你修改css類的方式。你在這個莊園裏做這件事有什麼原因嗎?您通常會將css類和圖像存儲在myproject/myproject/static/img和.../static/css中,然後從html模板{%load static%}中存儲並加載樣式表並拖出所需的圖像。你甚至可以在模板中{%if test%}。 – noes1s

回答

2

Django不在css內部渲染。

如果你想改變的背景圖像,然後更好地寫在線內模板:

內模板:

<div class="header-full-title" style="background-image: url('{{ sitebasics.logo|thumbnail_url:"logo_large" }}');"></div> 

您還可以創建動態CSS,但事實並非如此,因爲你只需要改變一個屬性。

+0

是一些具有相同圖像的屬性,但我發佈了一個例子,在CSS中有更多五個'class'和'id'來做同樣的事情,不同之處在於''和'height'圖像。 –

+0

如果您有多個屬性需要更改,並且每個屬性的不同元素都可以更改,那麼您可能會動態呈現css文件。看看這裏https://stackoverflow.com/a/10970037/709897 –

相關問題