簡體   English   中英

Django post_save在創建時沒有獲得多對多屬性

[英]Django post_save not getting many-to-many attributes on create

我將post_save方法綁定到django中的模型,如下面的代碼:

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)

這是我的模特:

def MyModel(models.Model):
    parameters = models.ManyToManyField(Parameter)

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

當我嘗試使用任意數量的參數從django admin創建一個MyModel ,我只得到save called輸出的save called 如果我再次從管理員中保存相同的MyModel對象,則會打印所有參數。 在創建時調用save在create上調用是否有什么區別? 如何確保在創建時使用post_save獲取模型的所有屬性?

ManyToMany字段不參與模型save()方法,因此post_save不會識別任何m2m更改。 要檢測m2m變化,請使用m2m_changed信號。

關於m2m_changed的django doc

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM