📚 Cheatsheet

Une collection organisée de snippets de code pour accélérer votre développement. Parcourez, recherchez et copiez en un clic.

Snippets 9

Retour
Connecter un signal
Avancé
# apps.py
from django.apps import AppConfig

class MonappConfig(AppConfig):
    #...
    def ready(self):
        import monapp.signals
Enregistrer un middleware
Avancé
# settings.py
MIDDLEWARE = [
    # ...
    'monapp.middleware.MonMiddleware',
]
Filtre de template personnalisé
Avancé
# monapp/templatetags/custom_filters.py
from django import template

register = template.Library()

@register.filter
def en_majuscules(valeur):
    return valeur.upper()
Middleware personnalisé
Avancé
# monapp/middleware.py
class MonMiddleware:
    def __init__(self, get_response):
        self.get_response = get_response

    def __call__(self, request):
        # Code exécuté avant la vue
        response = self.get_response(request)
        # Code exécuté après la vue
        return response
Signal post_save
Avancé
# signals.py
from django.db.models.signals import post_save
from django.dispatch import receiver
from .models import Article

@receiver(post_save, sender=Article)
def ma_fonction_apres_sauvegarde(sender, instance, created, **kwargs):
    if created:
        print(f'Article "{instance.titre}" créé !')
Utiliser un filtre personnalisé
Avancé
{% load custom_filters %}
{{ "bonjour"|en_majuscules }}
Vue basée sur une classe (CreateView)
Avancé
# views.py
from django.views.generic.edit import CreateView
from django.urls import reverse_lazy

class ArticleCreateView(CreateView):
    model = Article
    fields = ['titre', 'contenu']
    success_url = reverse_lazy('liste_articles')
Vue basée sur une classe (DetailView)
Intermédiaire
# views.py
from django.views.generic import DetailView

class ArticleDetailView(DetailView):
    model = Article
Vue basée sur une classe (ListView)
Intermédiaire
# views.py
from django.views.generic import ListView
from .models import Article

class ArticleListView(ListView):
    model = Article
    template_name = 'article_list.html'