Допустим, у меня есть модель:
class Group(models.Model):
patients = models.ManyToManyField(Patient)
patients_tracker = models.ManyToManyField(Patient, blank=True, editable=False, related_name="patient_tracker")
...
Теперь, в моей переопределенной функции save
, я устанавливаю их обоих равными друг другу. Делая:
self.patients_tracker.set(self.patients.all()) #----Statement a
, но в моей функции post_save этот оператор
if instance.patients_tracker.all() != instance.patients.all(): #----Statement b
по какой-то причине возвращает False, хотя я проверил вручную и print(instance.patients_tracker.all())
& print("Here's the patients: ", instance.patients.all())
вернул то же самое Пациенты в них, которые только говорят мне, что «Заявление а» работает отлично.
Но почему «Заявление б» не работает и не возвращает истину? Что я делаю не так?
РЕДАКТИРОВАТЬ: Позвольте мне на самом деле быть более ясным о моих намерениях здесь: я интенсивно ищу везде и нет полевых трекеров или трекеров истории для ManyToManyFields. Я хочу знать, когда пациент или какой пациент добавлен или удален в поле Group.patients
. Я подумал, что попробую сделать это вручную, но это не так хорошо, как вы можете видеть, go.
Спасибо, что прочитали это.