これは私の UserExtendedSerializer です:
class UserExtendedSerializer(serializers.ModelSerializer):
def __init__(self, *args, **kwargs):
super(UserExtendedSerializer, self).__init__(*args, **kwargs) # call the super()
for field in self.fields: # iterate over the serializer fields
self.fields[field].error_messages['required'] = 'Enter a valid %s.'%field # set the custom error message
self.fields[field].error_messages['invalid'] = 'Select a valid %s.'%field # set the custom error message
class Meta:
model = UserExtended
fields = ('country',)
これは私のmodels.pyです:
class Country(models.Model):
countryName = models.CharField(max_length=50, unique=True)
countryCode = models.CharField(max_length=10, unique=True)
class UserExtended(models.Model):
user = models.OneToOneField(User)
country = models.ForeignKey(Country)
私の問題は、ユーザーが無効な型を送信すると (Django は整数/pk 値を期待しますが、ユーザーが文字列「a」を送信すると仮定します)、Django はフロントエンドに「不正な型です。期待される pk 値を受け取りました」というエラーを送信します。リスト。" シリアライザーの「無効な」エラーメッセージを無効にしましたが。フロント エンドに送信されるエラー メッセージが「有効な国を選択してください」ではなく、「タイプが正しくありません。期待される pk 値、受信したリスト」であるのはなぜですか。代わりは?