2017-01-23 2 views
0

alle! Ich möchte auf Konstanten zugreifen, die ich in meiner setup.py-Datei deklariere, um sie in meiner Vorlage zu verwenden, aber nicht in einer Vorlage innerhalb der App. Ich möchte nur die Vorlage verwenden, die ich in meiner Einstellungsdatei deklariere.Variable in Einstellungsdatei mit in Vorlage

CMS_TEMPLATES = (
    ## Customize this 
    ('page.html', 'Page'), 
    ('feature.html', 'Page with Feature'), 
    ('homeTemplate.html', 'Home Template') // I want to use here 
) 

fand ich this Beispiel über das gleiche Problem in Stackoverflow, aber alle Fall verwendet die Variable innerhalb nicht in Top-Level-Anwendungen.

Wie ist der beste Weg, diesen Wert in dieser Vorlage zu verwenden !!

Antwort

1

Ich würde anfangen zu fragen - warum willst du das tun? Es scheint wie eine seltsame Art von ... Anpassung der Vorlagen Verzeichnisse, die Sie verwenden, schätze ich??

I wonder if you may have an XY problem. Wenn Sie das posten, was Sie erreichen möchten, ist das möglicherweise besser als eine spezifische Lösung für dieses spezielle Problem.

Im Allgemeinen können Sie jedoch nur Django-Variablen (einschließlich 10) in einem Projekt oder Skript verwenden, das Django oder zumindest seine Umgebungen verwendet. Doing from django.conf import settings importiert die Einstellungen, die auf der höchsten Ebene im Projekt verfügbar sind, über alle Apps hinweg. Die Projekte sind so grob angelegt.

myproject - 
    - myapp1 
    - myapp2 
    - myproject 
     - settings.py 
     - wsgi.py 
    - manage.py 

Wie in diesen answer, für externen Skripte, y ou can still import the django settings also:

import os 
import django 
from django.conf import settings 

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite.settings') 
django.setup() 
# now you can use settings.VARIABLE_NAME 

Aber: Das wird es immer noch nicht in eine Schablone bekommen, weil die Variable immer von hier aus in eine Vorlage Bedürfnisse Sie verwenden die Django-Engine zu render eine Antwort.

Wenn es nicht vom django-System bedient wird, ist es keine Vorlage, es ist nur eine normale HTML-Datei.

Wenn es sich um eine Vorlage in andere App in Ihrem gesamten Projekt ist, würden Sie es als Teil Ihres Kontext Wörterbuch passieren, as laid out in the docs on templates.

Verwandte Themen