J'ai un champ CharField qui est normalement vide. Je souhaite envoyer une notification par courrier électronique à tous les responsables (en utilisant mail_managers
) lorsque le champ est défini sur une valeur non vide. Les modifications apportées à ce champ ne doivent être effectuées que via le site d'administration. Je suppose que cela pourrait être quelque chose que je pourrais faire via des signaux, mais je ne vois pas un signal approprié énumérés dans le documentation. Des idées?Envoyer une notification par e-mail lorsqu'un site Django CharField est modifié via le site d'administration
Répondre
Vous aurez besoin d'ajouter un peu d'histoire sur le terrain si vous ne voulez pas les mises à jour si le champ est modifié à nouveau, mais simplement l'ajout d'une méthode de sauvegarde à votre modèle similaire à devrait fonctionner:
d'importation django.db modèles
class Test(models.Model):
empty_field = models.CharField(max_length=20, blank=True)
def save(self):
if self.pk is not None:
orig = Test.objects.get(pk=self.pk)
if orig.empty_field != self.empty_field and len(self.empty_field) > 0:
mail_managers ...
super(Test, self).save() # Call the "real" save() method
Voir http://www.djangoproject.com/documentation/models/save_delete_hooks/ et Django: When saving, how can you check if a field has changed?
Ahh! La valeur de l'historique serait la clé. Gr. Je déteste quand l'évidence me manque. Une fois que je fais une sorte de champ old_value, je pourrais juste utiliser le mécanisme de signal. Merci! –
Mis à jour le code désolé il est en retard et ne pensait pas. Vous aurez seulement besoin d'un champ booléen pour vérifier si le champ a été changé de vide à quelque chose SI vous voulez vous assurer qu'aucun courrier n'est envoyé si la valeur est de nouveau vide et ensuite changé à nouveau :) – sunn0
Bonne réflexion sunn0. Appréciez-le. –
- 1. Notification lorsqu'un fichier est modifié?
- 2. Javascript Exception Manipulation avec notification par email pour Django
- 3. Google Email notification par courriel
- 4. Limitations de Django CharField
- 5. manière correcte de rediriger l'emplacement du site modifié via .htaccess
- 6. Django CharField à cordes
- 7. modèle django Charfield
- 8. PHP envoyant une page HTML EMAIL depuis un site web
- 9. envoyer des scripts par email
- 10. Email dans le site Web (pas mailto lien), quelle langue?
- 11. Email Protect sur le site Web des robots et Crawlers
- 12. comment envoyer un email via smartermail?
- 13. Comment envoyer un email avec django-registration?
- 14. Email Notification Service
- 15. Asp.Net MVC Identifier le site via Url
- 16. Comment installer une notification Django?
- 17. Notification TFS fichier modifié
- 18. Le site django ne voit pas urls.py
- 19. envoyer un email via une application de cacao
- 20. Envoyer une notification par e-mail: projet MVC
- 21. ASP.NET - Envoyer des informations au site Web
- 22. DNN Site via Localize CodeBehind
- 23. Lien vers le site d'administration django
- 24. Personnaliser le site d'administration dans django
- 25. Comment protégez-vous le site admin django?
- 26. Envoyer un email par l'intermédiaire de GoDaddy
- 27. Envoyer des données via le périphérique matériel 3G sur le site ftp?
- 28. Comment envoyer un logcat par email?
- 29. django-notifications n'envoyer aucun email
- 30. est-il un plugin wordpress pour envoyer une notification par e-mail aux commentateurs?
voulez-vous envoyer l'e-mail lorsque l'enregistrement est enregistré, ou sur un autre événement? –
Je souhaite envoyer un e-mail la première fois qu'il est enregistré avec une valeur non vide dans ce champ de modèle CharField. –