D'après la documentation de Django que je lisais, il semble que signals.pyle 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_saveet que j'essaye d'importer la classe à partir du modèle, il entre en conflit avec le importdans 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_Queueintérieur signals.pyet 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