|
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