我想在保存後更新模型的一個字段。對於我使用post_save信號但是當我嘗試保存模型,可以始終被困在某種無限循環,到最後我得到max, recursion depth error
在POST後更新模型中的字段save
我的代碼如下:
class UserProfile(models.Model):
.
.
.
def profile_thumbanil(sender, created, instance , **kwargs):
profile = UserProfile.objects.get(id = instance.id)
thumb = handlers.create_thumbanil(profile.image, profile.user_id)
profile.thumbnail_image = thumb
profile.save()
post_save.connect(profile_thumbanil, sender=UserProfile)
我不知道這裏有什麼錯誤。如果任何人都可以告訴我另一種在post_save之後保存數據的方法,那麼這樣也可以。
感謝
編輯:
保存()將不會在我的情況下工作,因爲我創建圖像的縮略圖,我使用調整它們已經是圖像的腳本存在於服務器和因此直到save()完成其工作圖像將不會保存在服務器上,因此我無法調整它,這就是爲什麼我只能在save()完成其工作後運行我的功能,以便圖像將被保存在服務器上,我可以調整它。
當用戶嘗試通過UI保存圖像時,我可以使用Update(),在這種情況下,我的函數可以工作,因爲圖像已經保存到數據庫中,但是當管理員(django-admin)嘗試上傳圖像時,問題就出現了。 所以我需要調用我的函數,只要django管理員保存/編輯配置文件圖像,我可以調用我的函數,但正如我所說,我的函數只有在實際保存()完成其工作後才起作用。
您需要覆蓋您的'保存()'型號'UserProfile' – Sudipta
@Sudipta我編輯了我的問題plz檢查 – Inforian
有在這個django-imgekit應用程序的檢查。它可以幫助你調整你的大小https://github.com/matthewwithanm/django-imagekit –