2019年11月23日

DjangoRESTFrameworkでserializerのデフォルトエラーメッセージを変更する

Django REST FrameworkでModelSerializerを使用しているのだが、
デフォルトで設定されるエラーメッセージの変更方法が分からなかった。
調査してもすぐ出てこなかったので、残しておく。



解決方法

以下のようなモデルを想定する。
from django.db import models class Question(models.Model): question_text = models.CharField(max_length=200) pub_date = models.DateTimeField('date published')

serializerのMetaクラスのextra_kwargsに追記することで、デフォルトメッセージを変更できる。
class QuestionSerializer(ModelSerializer): class Meta: model = Question extra_kwargs = {"question_text": {"error_messages": {"required": "質問をください。"}}}


補足

requiredとかのcodeだが、validationとcodeの一覧みたいのを見つけることができず、
逐次、自分で調べるしか無さそうなのがツラい所。
一覧のありかとか、知ってる人いたら教えてください・・・。

あと、codeですが、Django公式でも書くように推奨されているので、
自分でvalidation書く時も忘れずに書くようにしたいところ。

この辺とか見てください。
https://docs.djangoproject.com/ja/2.2/ref/forms/validation/#raising-validationerror

参考

https://stackoverflow.com/questions/26943985/custom-error-messages-in-django-rest-framework-serializer

0 件のコメント:

コメントを投稿