0

私はDRFを使用してAPIバックエンドを作成しています。さて、管理者からモデルを保存しながら、特定の検証ルールを適用したいと思います。ビューセットを使用していて、残りのフレームワークから呼び出されたときにオーバーライドできます。しかし、save()メソッドをオーバーライドしてモデルを検証すると、要求パラメータがないため、エラーメッセージを管理者に送信することはできません。シナリオは、このようなものです:django.dbからのDjango.dbモデルのエラーメッセージ

from django.db import models 

class PatientCaregiver(models.Model):  
    name = models.CharField(max_length=200, null=True, blank=True) 
    email = models.CharField(max_length=200, null=True, blank=True) 

    def save(self, *args, **kwargs): 
     # do some processing 
     # return some error or success msg(how?) 

私は次のコードでのエラーメッセージを送ることができることを知っている:

from django.contrib import messages 
    messages.error(request,'Error message') 

しかし、あなたは私の保存()モデルでは、見ることができるようにIリクエストパラメータを持たない。ですから、モデルから管理者にエラーメッセージを送信するにはどうすればいいですか?

+0

なぜモデル保存メソッドでエラーメッセージが必要ですか? – Aniket

+0

これは、その要求がdjango管理者から実行されたときに到達するためです。私は、私は管理アクションを扱うビューを使用することはできないと思う。私はできますか? –

答えて

0

これに対処する適切な方法は、saveの中で例外を発生させ、ビューにキャッチしてそこにメッセージコードを追加することです。

+0

しかし、どのように私はビューで管理アクションをオーバーライドするのですか?私は方法があるかどうかわからない。 –

+0

https://docs.djangoproject.com/en/1.11/ref/contrib/admin/#admin-custom-validation – Linovia

関連する問題