D'après la documentation de Django que je lisais, il semble que signals.py
le dossier de l'application soit un bon point de départ, mais le problème auquel je suis confronté est que lorsque je crée des signaux pour pre_save
et que j'essaye d'importer la classe à partir du modèle, il entre en conflit avec le import
dans mon modèle.
# models.py
from django.contrib.auth.models import User
from django.db import models
from django.utils.translation import gettext as _
from signals import *
class Comm_Queue(CommunicatorAbstract):
queue_statuses = (
('P', _('Pending')),
('S', _('Sent')),
('E', _('Error')),
('R', _('Rejected')),
)
status = models.CharField(max_length=10, db_index=True, default='P')
is_html = models.BooleanField(default=False)
language = models.CharField(max_length=6, choices=settings.LANGUAGES)
sender_email = models.EmailField()
recipient_email = models.EmailField()
subject = models.CharField(max_length=100)
content = models.TextField()
# signals.py
from django.conf import settings
from django.db.models.signals import pre_save
from django.dispatch import receiver
from models import Comm_Queue
@receiver(pre_save, sender=Comm_Queue)
def get_sender_email_from_settings(sender, **kwargs):
obj=kwargs['instance']
if not obj.sender_email:
obj.sender_email='%s' % settings.ADMINS[0][1]
Ce code ne fonctionnera pas car j'importe à l' Comm_Queue
intérieur signals.py
et j'importe également les signaux à l'intérieur models.py
.
Quelqu'un peut-il me donner des conseils sur la façon dont je pourrais surmonter ce problème?
Cordialement