Django Rest Framework - Как сохранить с помощью идентификатора и получить другие столбцы? - PullRequest
0 голосов
/ 31 мая 2018

Этот вопрос является продолжением другого вопроса по этой ссылке здесь ( Django Rest Framework, как сохранить модель со связанным полем на основе идентификатора )

Моя ситуация разрешилась, когда я использовалPrimaryKeyRelatedField () для хранения данных с использованием идентификатора запроса POST.Это, в свою очередь, создало еще одну проблему.Я использовал ту же опцию GET API, чтобы вывести список всех столбцов из связанной модели (с внешним ключом), после использования PrimaryKeyRelatedField () другие столбцы исчезли, и идентификатор только отображается.Нужна помощь в этом.

Чтобы быть более понятным, нужен столбец идентификатора указанной таблицы во время вызова POST и другие столбцы модели / таблицы во время вызова GET.

PS: я использовал сериализаторы.ModelSerializer метод

1 Ответ

0 голосов
/ 31 мая 2018

Метод сериализатора to_representation можно использовать для переопределения поля связанных объектов только для выходных данных.Например, вы можете использовать sested serializer для отображения подробностей связанных объектов, например:

class RelatedSerializer(serializers.ModelSerializer):
    class Meta:
        Model = RelatedModel
        fields = ('id', 'field1', 'field2')

class YourSerializer(serializers.ModelSerializer):
    related_field = serializer.PrimaryKeyRelatedField(queryset=RelatedModel.objects.all())
    class Meta:
        Model = SomeModel 
        fields = ('id', 'related_field')

    def to_representation(self, instance):
        self.fields['related_field'] = RelatedSerializer()
        return super(YourSerializer, self).to_representation(instance)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...