我正在尝试为我的Scheduler模型创建一个识别器,它依赖于此模型的ManyToManyField
。
问题在于,当我覆盖save
方法时,第一次(创建对象时)会导致问题。它应该先保存。另一方面,当我创建post_save
信号时,问题是我必须save
此信号中的模型以infi结尾
class Scheduler(models.Model):
weekhours = models.ManyToManyField('WeekHour', related_name='schedulers')
identificator = models.TextField(null=True,blank=True)
def save(self,*args,**kwargs):
if self.weekhours.all():
identificator = ','.join([str(x.hour) for x in self.weekhours.all().order_by('hour')])
self.identificator = identificator
super(Scheduler, self).save(*args, **kwargs)
ValueError:
"<Scheduler: None>"
在使用多对多关系之前需要为字段“scheduler”设置一个值。
你有什么想法吗?
答案 0 :(得分:0)
嗯,怎么样
# some logic here (count the identificator)
objects.filter(id=my_id).update(identificator=identificator)
信号中的- 并且不要覆盖保存? :)