我要保存两个对象,其中一个对象是通过ForeignKey('self')关联的。
我想检查display(desk_num, desk_array);
是通过django admin调用的,还是从save()
本身作为递归方法调用的。因为我要保存该对象的两个实例,而不是无限多个。
模型:
save()
保存代码:
prev_work = models.ForeignKey('self', on_delete=models.CASCADE,
editable=False, null=True, blank=True)
我希望保存两个对象,但我不知道如何在每次方法结束时停止调用该程序。 我通过其他方式做到了,但我仍然想知道如何检查django管理员是否调用过该方法。 谢谢!
答案 0 :(得分:0)
不清楚要实现什么,但是您似乎想递归调用.save()
有限次。如果是这样,您可以在该方法中使用自定义关键字参数作为标志或计数器。
class Work(models.Model):
def save(self, *args, **kwargs):
# the default could be the max number of additional calls you want for this method
call_x_more_times = kwargs.pop('call_x_more_times', 1)
super().save(*args, **kwargs)
# ... do other things, if you need to ...
if call_x_more_times > 0:
# set argument for next call, decreased by 1
kwargs['call_x_more_times'] = call_x_more_times - 1
self.save(*args, **kwargs)
我们不能提供更多帮助,因为您没有在问题中提供太多信息。这是你吗?