[英]In Django: How do I auto-fill a ManyToMany-Field on save(), when called from django-admin?
[英]How to check if save() was called from django admin
我想保存兩個對象,其中一個通過ForeignKey('self')相關。
我想檢查是通過django admin調用save()
方法還是從save()
本身調用recursive方法。 因為我想保存對象的兩個實例而不是無限量的它們。
該模型:
prev_work = models.ForeignKey('self', on_delete=models.CASCADE,
editable=False, null=True, blank=True)
保存代碼:
prev_work = Work(chapter=self.chapter, job=self.job, prev_work=self)
prev_work.save()
我期待保存兩個對象,但我不知道如何在方法結束時停止程序調用save。 我是通過其他方式完成的,但我仍然想知道如何檢查是否從django admin調用了方法。 謝謝!
目前還不是很清楚你想要實現什么,但看起來你想要遞歸地調用.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)
我們無法提供更多幫助,因為您沒有在問題中提供太多信息。 這是ehlp嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.