首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django post_save在创建时没有获得多到多个属性

Django post_save在创建时没有获得多到多个属性
EN

Stack Overflow用户
提问于 2016-02-05 16:39:51
回答 1查看 1.3K关注 0票数 4

我将post_save方法绑定到django中的模型,如下所示:

代码语言:javascript
复制
def save_mymodel(sender,instance,*args,**kwargs):
    print 'save called'
    for parameter in instance.parameters.all():
        print parameter.name

post_save.connect(save_mymodel, sender=MyModel)

以下是我的模特:

代码语言:javascript
复制
def MyModel(models.Model):
    parameters = models.ManyToManyField(Parameter)

def Parameter(models.Model):
    name = models.CharField(max_length=100)

当我尝试使用任意数量的参数从django管理创建一个MyModel时,我只获得save called作为输出。如果我再次从管理员中保存相同的MyModel对象,那么所有参数都会被打印出来。在create上调用save与不调用create有什么区别?如何确保在创建模型时使用post_save获取模型的所有属性?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-05 16:42:54

ManyToMany字段不参与模型save()方法,因此post_save不会识别任何m2m更改。若要检测m2m变化,请使用m2m_changed信号。

变化

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

https://stackoverflow.com/questions/35229184

复制
相关文章

相似问题

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