У меня есть 2 модели
class Mapping(Model):
title = models.CharField(max_length=22)
class Query(Model):
field = models.CharField(max_length=22)
type = models.CharField(max_length=10, choices=(('=', 'Equals', ('in', 'Contains')))
value = models.CharField(max_length=256)
mapping = models.ForeignKey(Mapping, null=True, blank=True, related_name='queries')
Таким образом, отображение может иметь несколько запросов.
Мне нужно выполнить какую-то операцию, чтобы сопоставить сотрудников (отдельная модель), которые сопоставляются с отображением после его создания, поэтому я попытался использовать сигналы
@receiver(post_save, sender=Mapping)
def do_something(instance, created, **kwargs):
print("SIGNAL Received !!")
print(instance.queries) # Gives None
Проблема в том, что сигнал отправляется до того, как объекты Query созданы, и я получаю None при попытке доступа к instance.queries
Я не могу использовать m2m_changed, поскольку это не ManyToManyField.
Я также подумал об изменении отправителя сигнала на модель запроса вместо модели отображения, но это не сработает, поскольку мне нужно сопоставить сотрудников с отображением, только если они удовлетворяют всем запросам отображения, для которых мне нужно запустить задача на объекте сопоставления, а не на запросе.
Пожалуйста, предложите любые возможные решения.