|
6 | 6 | from rest_framework.exceptions import ErrorDetail
|
7 | 7 | from tests.models import (
|
8 | 8 | CustomManagerModel, EmailPKModel, ListModelForTest, NullableOneToOneSource,
|
9 |
| - OneToOneTarget |
| 9 | + OneToOneTarget, PersonUUID |
10 | 10 | )
|
11 | 11 |
|
12 | 12 |
|
@@ -840,3 +840,29 @@ def test_email_pk_instance_validation(self):
|
840 | 840 | input_data = [{"email": "test@test.com", "name": "bar"}]
|
841 | 841 | serializer = self.email_serializer(instance=EmailPKModel.objects.all(), data=input_data, many=True)
|
842 | 842 | assert serializer.is_valid(), serializer.errors
|
| 843 | + |
| 844 | + def test_uuid_validate_many(self): |
| 845 | + PersonUUID.objects.create(id="c20f2f31-65a3-451f-ae7d-e939b7d9f84b", name="valid") |
| 846 | + PersonUUID.objects.create(id="3308237e-18d8-4074-9d05-79cc0fdb5bb3", name="other") |
| 847 | + |
| 848 | + class PersonUUIDSerializer(serializers.ModelSerializer): |
| 849 | + uuid = serializers.UUIDField(source="id") |
| 850 | + |
| 851 | + class Meta: |
| 852 | + model = PersonUUID |
| 853 | + fields = ("uuid", "name") |
| 854 | + read_only_fields = ('uuid',) |
| 855 | + |
| 856 | + def validate_name(self, value): |
| 857 | + if value and not self.instance.is_valid: |
| 858 | + return False |
| 859 | + return value |
| 860 | + |
| 861 | + input_data = [ |
| 862 | + { |
| 863 | + "uuid": "t3308237e-18d8-4074-9d05-79cc0fdb5bb3", |
| 864 | + "name": "bar", |
| 865 | + }, |
| 866 | + ] |
| 867 | + serializer = PersonUUIDSerializer(instance=list(PersonUUID.objects.all()), data=input_data, many=True) |
| 868 | + assert serializer.is_valid(), serializer.errors |
0 commit comments