Evgenii Legotckoi
Evgenii Legotckoi26 вересня 2016 р. 14:06

Django - Підручник 010. Отримання змінних у файлі шаблону в Django з settings.py

У файлі settings.py у Django ми зберігаємо всю необхідну конфігураційну інформацію нашої програми, до складу якої може входити URL сайту або шляхи до певних директорій , в яких зберігаються спеціальні файли та багато іншого.

І іноді потрібно дані змінні використовувати в шаблонах, той же URL сайту. Але просто прописавши в шаблоні цю константу через {{ SITE_URL }} , скористатися цією змінною не вдасться. Одним із способів вирішення цього завдання є реєстрація шаблонних тегів, які виконуватимуть певний функціонал, наприклад, забирати атрибут з файлу налаштувань на його ім'я.


Реєстрація шаблонного тега

Якщо вже мова зайшла про використання SITE_URL у шаблоні, то домовимося, що у файлі settings.py ми прописали цю змінну.

SITE_URL = 'www.mysite.com'

А далі йдемо в ту програму, в якій зареєструємо тег для отримання атрибутів з файлу settings.py. У моєму випадку ця програма home. У даному додатку необхідно буде створити каталог templatetags і розмістити в ньому два файли: init .py і наприклад home\ _extras.py .

Отримаємо наступну структуру програми:

home/
    migrations/
    templates/
    templatetags/
        __init__.py
        home_extras.py
    __init__.py
    admin.py
    apps.py
    models.py
    sitemap.py
    tests.py
    urls.py
    views.py

А тепер подивимося вміст файлу home_extras.py.

from django import template
from django.conf import settings

register = template.Library()


# Регистрируем тег, с помощью которого будем получать атрибуты из файла settings
@register.simple_tag
def get_attribute(name):
    return getattr(settings, name, "")

Використання у шаблоні

А використання у шаблоні буде ще простіше. Потрібно буде лише підвантажити у шаблоні розширення тегів та скористатися даним тегом, передавши йому ім'я атрибута, який хочемо отримати.

{% load home_extras %}
{% get_attribute 'SITE_URL' %}"

Для Django рекомендую VDS-сервера хостера Timeweb .

Рекомендуємо хостинг TIMEWEB
Рекомендуємо хостинг TIMEWEB
Стабільний хостинг, на якому розміщується соціальна мережа EVILEG. Для проектів на Django радимо VDS хостинг.

Вам це подобається? Поділіться в соціальних мережах!

Коментарі

Only authorized users can post comments.
Please, Log in or Sign up
m
  • molni99
  • 26 жовтня 2024 р. 08:37

C++ - Тест 004. Указатели, Массивы и Циклы

  • Результат:80бали,
  • Рейтинг балів4
m
  • molni99
  • 26 жовтня 2024 р. 08:29

C++ - Тест 004. Указатели, Массивы и Циклы

  • Результат:20бали,
  • Рейтинг балів-10

C++ - Тест 003. Условия и циклы

  • Результат:42бали,
  • Рейтинг балів-8
Останні коментарі
i
innorwall10 листопада 2024 р. 23:52
Qt/C++ - Урок 025. Створення файлів проекту where to buy priligy It helps keep bones strong, nerves and muscles working properly, and blood sugar under control
i
innorwall10 листопада 2024 р. 21:03
Django - Підручник 029. Додавання приватних повідомлень і чатів на сайт - Частина 1 priligy at walgreens ortho ciprofloxacin tablet uses in telugu Republicans in Congress have chastised Obama s top health adviser, Health and Human Services Secretary Kathleen Sebelius, …
i
innorwall10 листопада 2024 р. 17:55
Як скопіювати файли в Linux In dogs, it is used to facilitate synchronized cardioversion of atrial fibrillation buy priligy usa
i
innorwall10 листопада 2024 р. 17:03
Як зробити гру за допомогою Qt - Урок 3. Взаємодія з іншими об'єктами priligy otc I routinely do not tell patients and or parents of patients with atopic dermatitis to avoid glutamates in food
i
innorwall10 листопада 2024 р. 14:05
QML - Урок 020. Старт роботи з Android Manifest в Qt Creator PMID 34322115 Free PMC article pastillas priligy en mexico
Тепер обговоріть на форумі
i
innorwall11 листопада 2024 р. 00:34
добавить qlineseries в функции priligy dapoxetine amazon a Rates of overall CRA in respect of associated explanatory variables age at treatment and age at menarche
9
9Anonim25 жовтня 2024 р. 16:10
Машина тьюринга // Начальное состояние 0 0, ,<,1 // Переход в состояние 1 при пустом символе 0,0,>,0 // Остаемся в состоянии 0, двигаясь вправо при встрече 0 0,1,>…
ИМ
Игорь Максимов03 жовтня 2024 р. 11:05
Реализация навигации по разделам Спасибо Евгений!
F
Fynjy22 липня 2024 р. 11:15
при создании qml проекта Kits есть но недоступны для выбора Поставил Qt Creator 11.0.2. Qt 6.4.3 При создании проекта Qml не могу выбрать Kits, они все недоступны, хотя настроены и при создании обычного Qt Widget приложения их можно выбрать. В чем может …

Слідкуйте за нами в соціальних мережах