モデルon_delete=models.PROTECT
の外部キーに制約があります。modelformset_factory プログラム クラッシュを使用して参照モデルを削除しようとすると、次のようになります。
u'("モデル \'Zona\' の一部のインスタンスは、保護された外部キー \'Camping.zonaTarifaria\' を通じて参照されているため、削除できません", [])'
modelformset_factory が他の検証と同様に検証エラーを処理することを望んでいましたが、そうではありませんでした。魔法の解決策はありますか?
この方法でエラーを ValidationError に移動しようとしました (もちろん、参照モデルで):
class Zona(models.Model):
codi = models.CharField(u'Codi',
...
def delete(self, *args, **kwargs):
try:
super(Zona, self).delete( *args, **kwargs)
except Exception, e:
raise ValidationError( e )
しかし、削除メソッドから来た場合、modelformset_factory は検証エラーを渡さないようです。