0
我試圖阻止保存模型,如果我有一個頁面更新名稱被更改。所以防止模型保存並從pre_save信號引發驗證錯誤
def clean (self):
// if the name of the page has changed
raise ValidationError({'name':'Sorry you cannot change this'})
但是,我無法獲得原來的名字比較它反對新的實例名稱
然後我:理想情況下我會用乾淨的方法,提高驗證錯誤(可以嗎?)利用信號使我搶原來的名字
@receiver(pre_save, sender=Page)
def prevent_save_if_name_same(sender,**kwargs):
instance = kwargs.get('instance')
old_model = sender.objects.get(pk=instance.id)
if old_model.name == instance.name:
// i would like to raise a validation error
不過試過,我不能將傳播到模型的save()方法的信號內提出一個ValidationError。當我嘗試這個時,我得到了Django調試頁面 - 不像你所期望的那樣顯示名稱字段旁邊的錯誤。
任何幫助非常感謝!
非常感謝 - 真正有用的 - 有很多瞭解Django的! – Newfoundland