slogan3

Help me een aangepaste signaalhandler implementeren in mijn Django-toepassing om complexe workflows te beheren.

description

Door deze prompt te gebruiken, stroomlijn je het workflowbeheer van je toepassing, verbeter je de organisatie van de code en zorg je ervoor dat specifieke acties automatisch worden geactiveerd als reactie op belangrijke gebeurtenissen, wat de algehele efficiëntie van de toepassing verbetert.

prompt

try_prompt

Beschrijf mijn huidige Django-projectopzet: {{huidige_projectopzet}}. Voor welke specifieke gebeurtenissen ... more
generate_helper
disclaimerOnPageApi image_legal_disclaimer...

ai_answers

provider: openai
model: gpt-4.1-nano
Je huidige Django-project gebruikt Django 3.2 en beschikt over een aangepast gebruikersmodel. Je wilt specifieke gebeurtenissen detecteren en daarop aangepaste acties uitvoeren. De gebeurtenis die je noemt, is het versturen van een verificatie-e-mail na het aanmaken of wijzigen van een gebruiker. Dit kun je bereiken door een signaal te gebruiken dat wordt getriggerd na het opslaan van een gebruiker. Specifiek wil je de actie uitvoeren bij het signaal `post_save` voor het `User`-model (of je aangepaste versie daarvan). Wanneer een nieuwe gebruiker wordt aangemaakt of een bestaande gebruiker wordt bijgewerkt, wordt dan automatisch een verificatie-e-mail gestuurd. De implementatie zou er ongeveer zo uitzien: ```python from django.db.models.signals import post_save from django.dispatch import receiver from jouw_app.models import User @receiver(post_save, sender=User) def stuur_verificatie_email(sender, instance, created, **kwargs): if created: # Actie: stuur verificatie-e-mail verzend_verificatie_email(instance) ``` Hiermee wordt de functie `verzend_verificatie_email` aangeroepen telkens wanneer een nieuwe gebruiker wordt aangemaakt, en kun je daarin de logica voor het versturen van een verificatie-e-mail implementeren. Kortom: - Gebeurtenis: `post_save` voor het aangepaste `User`-model - Actie: automatisch versturen van een verificatie-e-mail na het aanmaken van een nieuwe gebruiker
provider: deepseek
model: deepseek-chat
In jouw Django 3.2 project met een aangepast gebruikersmodel zijn dit de belangrijkste gebeurtenissen en acties: **Specifieke gebeurtenissen en aangepaste acties:** 1. **post_save voor User-model** - ✅ **Primaire keuze** - **Actie:** Verificatie-e-mail versturen bij nieuwe gebruikersregistratie - **Implementatie:** Gebruik `@receiver(post_save, sender=User)` decorator - **Controleer:** Of het een nieuwe gebruiker is met `created` parameter 2. **post_save voor UserProfile** (indien aanwezig) - **Actie:** Automatisch profiel aanmaken bij nieuwe gebruiker - **Handig voor:** Uitgebreide gebruikersinformatie 3. **pre_save voor User-model** - **Actie:** Gegevens valideren voor opslaan - **Bijvoorbeeld:** E-mailformaat controleren, wachtwoord hashen 4. **post_login signal** (via django-allauth) - **Actie:** Laatste login bijwerken, activiteiten loggen **Voorbeeld implementatie verificatie-e-mail:** ```python from django.db.models.signals import post_save from django.dispatch import receiver from django.core.mail import send_mail from .models import User @receiver(post_save, sender=User) def send_verification_email(sender, instance, created, **kwargs): if created: # Stuur verificatie-e-mail naar instance.email send_mail( 'Verifieer je account', 'Verificatie-inhoud hier...', 'noreply@jewebsite.nl', [instance.email], fail_silently=False, ) ``` Vergeet niet de signal handler te registreren in je `apps.py` of `__init__.py`!