Chcę utworzyć nowy plik .py, gdzie chcę przechowywać pewne konkretne zmienne, które zmieniają się w sposób ciągły

Na przykład w zmiennych.py

var1 = 5
var2 = 10
var3 = "Hello"

A następnie w widokach.py po prostu zrobienie z myApp importu I chcę ich używać we wszystkich widokach tylko

{{ var1 }}
{{ var2 }}

Dlaczego nie działa?

0
user3854113 15 sierpień 2014, 06:11

2 odpowiedzi

Najlepsza odpowiedź

Jeśli nie są używane przez poglądy, ale tylko dla renderowania możesz zrobić kontekst_procesor

Wewnątrz your_app / zmienne.py

def my_variables(request):
    return {
        "var1": True,
        "var2": "foo",
        "var3": 42,
    }

Następnie w twoich ustawieniach.py

TEMPLATE_CONTEXT_PROCESSORS = (
    "django.contrib.auth.context_processors.auth",
    "django.core.context_processors.debug",
    "django.core.context_processors.i18n",
    "django.core.context_processors.media",
    "django.core.context_processors.static",
    "django.core.context_processors.tz",
    "django.contrib.messages.context_processors.messages",
    "your_app.variables.my_variables",
)

Te zmienne będą teraz dostępne w każdym renderowaniu.

1
Stuart Leigh 15 sierpień 2014, 08:39

Musisz tylko przekazać je jako kontekst:

from django.shortcuts import render
from myapp.variables import var1, var2, var3

def my_view(request):
    return render(request, 'myapp/index.html', {"var1":var1, "var2":var2, "var3":var3})

https://docs.djangoproject.com/en/1.6/topics/http/shortcuts/

0
agconti 15 sierpień 2014, 03:09