Según la documentación de Django que estaba leyendo, parece que signals.py
la carpeta de la aplicación es un buen lugar para comenzar, pero el problema al que me enfrento es que cuando creo señales para pre_save
e intento importar la clase desde el modelo, entra en conflicto con la import
en mi modelo.
# 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]
Este código no se ejecutará porque importo Comm_Queue
dentro signals.py
y también importo las señales dentro models.py
.
¿Alguien puede darme un consejo sobre cómo podría superar este problema?
Saludos