2016-03-31 10 views
4

Web sitemde görüntülemek istediğim yaklaşık 10 sabit var. Bu sabitler, models.py'de belirtilmiştir.django şablonundan models.py'deki sabitlere nasıl erişilir?

Django şablonumda bu sabitleri nasıl kullanırım?

Sınıf tabanlı görünümler kullanıyorum.

class PanelView(RequireBuyerOrSellerMixin, TemplateView): 
    template_name = "core/panel.html" 

cevap

5

Bunları view.py'ye içe aktarın, sonra görünümünüzde, şablonu beslemek için bağlamda geçirin.

models.py

CONSTANT1 = 1 
CONSTANT2 = 2 

view.py

from app.models import CONSTANCT1, CONSTANCE2 

def func(request): 
    context['constant1'] = CONSTANT1 
    context['constant2'] = CONSTANT2 
    # return HttpResponse() 

template.html

{{ constant1 }} 
{{ constant2 }} 

Düzenleme:

Sınıf ba sed görüşlerinin işlev tabanlı görünümlerden farkı yoktur. django docs uyarınca, içeriğe fazladan şeyler eklemek için get_context_data geçersiz kılın.

+0

Teşekkürler Sınıf tabanlı görünümler kullanıyorum – User

+1

Cevabımı düzenledim. –

2

Genellikle @Shang Wang önerilen yol olmalıdır, ancak birçok şablonlarında sabitleri kullanmak istiyorsanız custom template tag

from django import template 
from app import models 

register = template.Library() 

@register.simple_tag 
def get_constants(name): 
    return getattr(models, name, None) 

yazmaya değecek Ve şablonunda olabilir:

{% get_constants 'CONSTANT1' %} 
+0

Sözlükse erişebilir miyim? – User

+1

django1.9'da bunu bir şablon değişkenine kaydedebilir ve daha sonra dikte değerlerine erişebilirsiniz. – ilse2005