0
更新時に名前が変更されたページがある場合、モデルの保存を防止しようとしています。だから私、その後モデルの保存を防止し、pre_save信号からの検証エラーを発生させる
def clean (self):
// if the name of the page has changed
raise ValidationError({'name':'Sorry you cannot change this'})
しかし、私は新しいインスタンス名に対してそれを比較するために、元の名前を取得することはできません(私はでき?)
:理想的には私はきれいなメソッドを使用して検証エラーを引き上げますしかし、私は()メソッドの保存モデルに伝播する信号の中からValidationErrorを調達することはできません
@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
元の名前をつかむために私を可能にする信号を使用してみました。これを試してみると、Djangoのデバッグページが表示されます。期待通りに名前フィールドの隣にエラーが表示されるわけではありません。
ご迷惑をおかけして申し訳ありません。
- ジャンゴについて知るべきことがたくさんがあります!!! - 本当に便利に – Newfoundland