mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-08-03 20:10:10 +03:00
Pickup custom length for max_length
This commit is contained in:
parent
4c7b3040d8
commit
682c98958a
|
@ -202,6 +202,9 @@ def get_field_kwargs(field_name, model_field):
|
|||
isinstance(model_field, models.TextField) or
|
||||
isinstance(model_field, models.FileField)):
|
||||
kwargs['max_length'] = max_length
|
||||
custom_message = model_field.error_messages.get("max_length", None)
|
||||
if custom_message is not None:
|
||||
kwargs.setdefault('error_messages', {}).update(max_length=custom_message)
|
||||
validator_kwarg = [
|
||||
validator for validator in validator_kwarg
|
||||
if not isinstance(validator, validators.MaxLengthValidator)
|
||||
|
|
|
@ -2,8 +2,7 @@ import datetime
|
|||
|
||||
import pytest
|
||||
from django.core.validators import (
|
||||
MaxLengthValidator, MaxValueValidator, MinLengthValidator,
|
||||
MinValueValidator
|
||||
MaxValueValidator, MinLengthValidator, MinValueValidator
|
||||
)
|
||||
from django.db import DataError, models
|
||||
from django.test import TestCase
|
||||
|
@ -648,10 +647,11 @@ class ValidatorMessageTests(TestCase):
|
|||
assert s.errors['text'] == ['This is too short.']
|
||||
|
||||
def test_max_length_validator_message_is_copied_from_model(self):
|
||||
# Added this test because was expecting is_valid() to be false but it is not.
|
||||
# Will investigate further
|
||||
class Post(models.Model):
|
||||
text = models.CharField(max_length=100, validators=[MaxLengthValidator(limit_value=1, message='This is too long.')])
|
||||
text = models.CharField(
|
||||
max_length=1,
|
||||
error_messages={"max_length": "This is too long"}
|
||||
)
|
||||
|
||||
class PostSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
|
@ -661,3 +661,4 @@ class ValidatorMessageTests(TestCase):
|
|||
data = {'text': 'A very long text'}
|
||||
s = PostSerializer(data=data)
|
||||
assert not s.is_valid()
|
||||
assert s.errors['text'] == ['This is too long']
|
||||
|
|
Loading…
Reference in New Issue
Block a user