A library to load data from database to template
Project description
Django Template Data
Why?
You are working on a Django project and you want a way to update some strings or blocks without using a bare CMS or a WYSIWYG. Then this small module is for you. It does what you expect, load datas from database and send them via the context to the templates.
Installation
$ pip install django-template-data
Usage
Add 'template_data' in INSTALLED_APPS
INSTALLED_APPS = [
...,
'template_data',
...,
]
Then add load_data()
to templates context processors
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [],
'APP_DIRS': True,
'OPTIONS': {
'debug': True,
'context_processors': [
...,
'template_data.processors.load_data',
],
},
},
]
Finally migrate
$ python manage.py migrate
Tutorial
Let say you want a dynamic title, loaded from the database. First create a base template like this:
{% load i18n %}
<!doctype html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<link rel="shortcut icon" href="/static/front/img/favicon.png" type="image/x-icon">
{% block full_title %}<title>{% block title %}{{ title }}{% endblock %} - Sitename</title>{% endblock %}
...
Go to your Django admin to manage TemplateData model. Create two rows, with these
values:
key = "title", page = "index", value = "Home"
key = "title", page = "signin", value = "Login in your account"
As you can imagine the title of the index page will be "Home - Sitename" and
for the signin page will be "Login in your account - Sitename"
You surely noticed how we appended "- Sitename" to the title in the template.
We can do the same by using the inheriting feature.
First we define this template:
{% load i18n %}
<!doctype html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<link rel="shortcut icon" href="/static/front/img/favicon.png" type="image/x-icon">
<title>{% block title %}{{ title }}{% endblock %}</title>
...
Then create three rows of TemplateData with these values:
key = "title", page = "global", value = "Sitename"
key = "title", page = "index", inheriting_page = "global", value = "Home - {{ super }}"
key = "title", page = "signin", inheriting_page = "global", value = "Login in your account - {{ super }}"
You will have the same result.
Contributing
Contributions are welcome. It is FOSS!
License
Feel free to use it as you want.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for django-template-data-0.0.7.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | dcd82f41ebb4a557829e9fbd95ff0b81c357617bc7d98d5e05eae2bad602390f |
|
MD5 | 1b7725e064a91b1b42468a13e64aa4d7 |
|
BLAKE2b-256 | 5eaef6174f2e2af9f63cdf89648866791b159b5e575367bc15c6c574b3a3ae4d |
Hashes for django_template_data-0.0.7-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f5616af4f3e8b2c01ed53437119cbd85625b29df3a8b258fb743db31cb889386 |
|
MD5 | 9c5e299d03a59d61e3ae0a323e657591 |
|
BLAKE2b-256 | c3d79a23f256d6b8c5e124dbc8b3301b3ddaeb428c06366982113c4017b53498 |