我试图在def save_相关(self,request,form,*args,**kwargs)方法保存之前和之后访问ManyToManyField的queryset。 我想比较它们,得到新的对象,它们被添加到很多很多字段中。在
所以,我越来越老了:
def save_related(self, request, form, * args, * * kwargs):
obj = form.instance
queryset_before = obj.translations.all()
print(queryset_before)
super(WordAdmin, self).save_related(request, form, * args, * * kwargs)
print(queryset_before)
但是print(queryset_before)在调用super()后输出新的更新的queryset。在
所以:
问题是,打印一个queryset将只计算queryset的一部分,因此,它不会填充queryset的内部缓存。在
在进行更改之前,您需要完全计算queryset,以便填充内部缓存。最简单的方法是使用
bool()
函数:现在两个print语句应该得到相同的结果。在
您可以获取保存前后的ID列表,然后比较这些列表:
相关问题 更多 >
编程相关推荐