diff options
Diffstat (limited to 'rest_framework/serializers.py')
| -rw-r--r-- | rest_framework/serializers.py | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/rest_framework/serializers.py b/rest_framework/serializers.py index 683b9efc..03763824 100644 --- a/rest_framework/serializers.py +++ b/rest_framework/serializers.py @@ -351,7 +351,10 @@ class ModelSerializer(RelatedField, Serializer): """ Creates a default instance of a flat relational field. """ - return PrimaryKeyRelatedField() + queryset = model_field.rel.to._default_manager # .using(db).complex_filter(self.rel.limit_choices_to) + if isinstance(model_field, models.fields.related.ManyToManyField): + return ManyPrimaryKeyRelatedField(queryset=queryset) + return PrimaryKeyRelatedField(queryset=queryset) def get_field(self, model_field): """ @@ -365,7 +368,7 @@ class ModelSerializer(RelatedField, Serializer): models.EmailField: EmailField, models.CharField: CharField, models.CommaSeparatedIntegerField: CharField, - models.BooleanField: BooleanField + models.BooleanField: BooleanField, } try: return field_mapping[model_field.__class__]() |
