Django
Django aide-mémoire
Templating |
|
Héritage du parent | {% block menu %} |
Créer une variable s2_lang puis la sortir dans le template |
{% with 'x/y/js/i18n/'|add:LANGUAGE_CODE|add:'.js' as s2_lang %} |
Astuces |
|
Afficher des messages uniques à l’utilisateur Ex: « Merci de vous être inscrit » etc. |
Infrastructure des messages |
Faire un import des settings, mais relatif = pas dépendant de l’application où vous avez le fichier. |
Coder « proprement » pour Django |
Calculer un template « manuellement » |
Aide ici |
SQL |
|
Requête directe |
|
Lancer la console python (Tools » Python console), puis taper : from django.db import connection Autre exemple : from django.db import connection
|
|
Sauvegarde / restauration |
|
Lancer via manage.py ([CTRL] + [ALT] + r sous PyCharm) :Sauvegarde : dumpdata -o data.json Restauration : loaddata data.json
|
|
Changer un mot de passe |
|
from django.contrib.auth.models import User
|
Multilangue |
|
Créer tous les fichiers en ignorant mes librairies tierces : | |
makemessages --locale fr --locale en --ignore third_party |
|
Multilangue JavaScript : préciser le domaine | |
makemessages -d djangojs -i third_party --locale fr --locale en --ignore static/vendors
|
|
Ne pas oublier : compilemessages … et de redémarrer le serveur !
|
Multilangue : chaînes custom |
|
Dupliquer le dossier locale hors de vos applications (= je le fais dans le dossier principal), exemple :locale »»»» locale_unity
|
|
Modifier LOCALE_PATHS du fichier settings.py comme suit :LOCALE_PATHS = (
|
|
Modifiez les fichiers .po concernés.
|
|
Ne pas oublier : compilemessages … et de redémarrer le serveur !
|
Multilangue / JavaScript |
|
Declaration dans
|
|
Attention, ici « app » = dossier d’une application qu’on veut traduire, moi je les appelle souvent « app ». :
js_info_dict = { urlpatterns = [ |
|
Inclure les fichiers
|
|
<script src="{% url 'javascript_catalog' %}"></script>
Ajouter aussi le fichier personnel où je mets ma fonction « raccourci » pour la traduction : Ma fonction « raccourci » pour la traduction : |
|
Extraction des chaines et traduction |
|
Très important : récupérer les chaines en précisant le domaine djangojs :makemessages -d djangojs -i third_party --locale fr --locale en
À partir de là, deux fichiers de traduction : le classique |
|
Exemple de code JavaScript qui fera partie des chaînes à traduire |
|
$('#menu').empty().append(
|
Installation |
|
Python 3.9 |
|
virtualenv -p /usr/local/bin/python3.9 venvpython3.9 source venvpython3.9/bin/activate pip install --upgrade pip pip install 'django==3.0'
Installez |
PostgreSQL |
|
Création d’un utilisateur + mot de passe |
|
Être root. De là, taper :sudo -i -u postgres psql [nom base de donnees] CREATE USER interro WITH PASSWORD 'i'; Très important : lui donner tous les droits sur la base : GRANT ALL PRIVILEGES ON DATABASE "interro" to interro; Et si l’utilisateur existe déjà : ALTER USER interro WITH PASSWORD 'i';
|
|
Changement d’owner des tables |
|
Se connecter à la base. Allez je mets la commande Windows :"\Program Files\PostgreSQL\9.5\bin\psql.exe" -U postgres interro . De là, taper (j’ai bien mis en gras le nom de l’utilisateur à qui on donne les tables) : SELECT 'ALTER TABLE '|| schemaname || '.' || tablename ||' Et PostgreSQL va sortir une floppée de « ALTER TABLE... « , il suffit juste de les copier/coller dans le prompt pour les appliquer.
|
Vues Login / logout |
|
– Créer l’URL de login :url(r'^login/$', LoginView.as_view(), name='login'),
– Créer la vue class LoginView(views.LoginView): def __init__(self): |
|
– Créer l’URL de logout :url(r'^logout/$', LogoutView.as_view(), name='logout'),
– Créer la vue class LogoutView(views.LogoutView): def __init__(self):
|