我确定这是我看不到的愚蠢的东西,但这是我拥有的
def save(self, *args, **kwargs):
print self.sites.all()
super(Article, self).save(*args, **kwargs)
self.sites.add(Site.objects.get(pk=1))
print self.sites.all()
哪个打印
[<Site: site2.co.nz>, <Site: site3.co.nz>]
[<Site: site2.co.nz>, <Site: site3.co.nz>, <Site: site1.co.nz>]
,但site1.co.nz
在M2M关系中没有持续。
看起来Django Admin分别保存M2M,该M2M在我的自定义保存方法中清除了M2M数据。
https://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.modeladmin.save_ryated
class MyModelAdmin(admmin.ModelAdmin):
def save_related(self, request, form, *args, **kwargs):
super(ArticleAdmin, self).save_related(request, form, *args, **kwargs).
obj = form.instance
obj.sites.add(Site.objects.get(id=1))