首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重写保存方法会在创建对象时引发异常。

重写保存方法会在创建对象时引发异常。
EN

Stack Overflow用户
提问于 2016-12-11 21:05:25
回答 1查看 43关注 0票数 0

我试图为我的Scheduler模型创建一个标识符,它依赖于这个模型的ManyToManyField

问题是,当我重写save方法时,第一次(创建对象时)它会导致问题。应该先把它保存起来。另一方面,当我创建一个post_save信号时,问题是我必须在这个信号中save模型,该模型以infi结尾。

代码语言:javascript
复制
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>"需要有一个字段“调度器”的值。

你有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2016-12-11 22:14:49

嗯,那

代码语言:javascript
复制
# some logic here (count the identificator)
objects.filter(id=my_id).update(identificator=identificator)

在您的信号中-并且不要覆盖保存?:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41091139

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档