|
5 | 5 |
|
6 | 6 | from rest_framework import serializers |
7 | 7 | from tests.models import ( |
8 | | - ForeignKeySource, ForeignKeyTarget, ManyToManySource, ManyToManyTarget, |
9 | | - NullableForeignKeySource, NullableOneToOneSource, |
10 | | - NullableUUIDForeignKeySource, OneToOnePKSource, OneToOneTarget, |
11 | | - UUIDForeignKeyTarget |
| 8 | + ForeignKeySource, ForeignKeySourceWithLimitedChoices, ForeignKeyTarget, |
| 9 | + ManyToManySource, ManyToManyTarget, NullableForeignKeySource, |
| 10 | + NullableOneToOneSource, NullableUUIDForeignKeySource, OneToOnePKSource, |
| 11 | + OneToOneTarget, UUIDForeignKeyTarget |
12 | 12 | ) |
13 | 13 |
|
14 | 14 |
|
@@ -38,6 +38,12 @@ class Meta: |
38 | 38 | fields = ('id', 'name', 'target') |
39 | 39 |
|
40 | 40 |
|
| 41 | +class ForeignKeySourceWithLimitedChoicesSerializer(serializers.ModelSerializer): |
| 42 | + class Meta: |
| 43 | + model = ForeignKeySourceWithLimitedChoices |
| 44 | + fields = ("id", "target") |
| 45 | + |
| 46 | + |
41 | 47 | # Nullable ForeignKey |
42 | 48 | class NullableForeignKeySourceSerializer(serializers.ModelSerializer): |
43 | 49 | class Meta: |
@@ -360,6 +366,18 @@ class Meta(ForeignKeySourceSerializer.Meta): |
360 | 366 | serializer.is_valid(raise_exception=True) |
361 | 367 | assert 'target' not in serializer.validated_data |
362 | 368 |
|
| 369 | + def test_queryset_size_without_limited_choices(self): |
| 370 | + limited_target = ForeignKeyTarget(name="limited-target") |
| 371 | + limited_target.save() |
| 372 | + queryset = ForeignKeySourceSerializer().fields["target"].get_queryset() |
| 373 | + assert len(queryset) == 3 |
| 374 | + |
| 375 | + def test_queryset_size_with_limited_choices(self): |
| 376 | + limited_target = ForeignKeyTarget(name="limited-target") |
| 377 | + limited_target.save() |
| 378 | + queryset = ForeignKeySourceWithLimitedChoicesSerializer().fields["target"].get_queryset() |
| 379 | + assert len(queryset) == 1 |
| 380 | + |
363 | 381 |
|
364 | 382 | class PKNullableForeignKeyTests(TestCase): |
365 | 383 | def setUp(self): |
|
0 commit comments