Обновление поля модели в методе сохранения на основе значений других выбранных полей, включая поле m2m
Я пытаюсь обновить поле модели, переопределив метод сохранения:
class DataTable(models.Model):
id = models.AutoField(db_column='Id', primary_key=True)
country= models.ForeignKey(Countries,on_delete=models.DO_NOTHING,db_column='CountryId')
university=models.ManyToManyField(Universities,db_column='UniversityId',verbose_name='University',related_name='universities')
intake = models.CharField(db_column='Intake',blank=True, null=True, max_length=20, verbose_name='Intake')
year = models.CharField(max_length=5,blank=True,null=True)
application_status = models.ForeignKey(Applicationstages,on_delete=models.DO_NOTHING, db_column='ApplicationStageId',verbose_name='Application Status')
requested_count = models.PositiveIntegerField(db_column='RequestedCount',blank=True,null=True)
class Meta:
db_table = 'DataTable'
def __str__(self):
return str(self.application_status)
def __unicode__(self):
return str(self.application_status)
def save(self,*args, **kwargs):
super(DataTable,self).save(*args, **kwargs)
country_id= self.country
intake= self.intake
year= self.year
universities= self.university.all()
courses = get_ack_courses(country_id,universities)
all_data = get_all_courses(intake,year,courses)
ack_data = get_acknowledgements_data(all_data)
self.requested_count =len(ack_data)
super(DataTable,self).save(*args, **kwargs)
Я пытаюсь обновить поле requested_count, используя значения других полей, но в методе сохранения, когда я пытаюсь получить данные поля m2m ; оно возвращает пустое. Я также пробовал с сигналом post_save и там также данные поля m2m пустые.
Я хочу, чтобы поле count основывалось на других полях из этой модели. Как сохранить, если у нас есть m2m поля?