django остальные рамки: Dynami c, сериализатор и ViewSet - PullRequest
0 голосов
/ 20 марта 2020

Я новичок в django и django остальные рамки как отказ от ответственности.

У меня есть Модель, которая содержит столбцы метаданных, такие как дата последнего изменения и дата последнего изменения пользователя. Эти данные должны быть доступны в API для просмотра, но будут заданы автоматически бэкэндом и, следовательно, не должны потребоваться для создания / обновления. Насколько я понял, я могу создать динамизатор c сериализатор, как показано в документах .

Однако как я могу использовать сериализованный динамик c в ViewSet? Или это просто невозможно?

1 Ответ

1 голос
/ 20 марта 2020

Если вы хотите, чтобы дата последнего изменения и последний измененный пользователь были доступны только для чтения, вам не нужно создавать DynamicSerializer. Все, что вам нужно сделать, это установить поля как read_only на сериализаторе.

class MyModelSerializer(serializers.ModelSerializer):

    class Meta:
        model = MyModel
        fields = (fields exposed to the API)
        read_only_fields = ("last_modified_date", "last_modified_user")

После создания сериализатора его необходимо добавить в ViewSet

class MyModelViewSet(viewsets.ModelViewSet):
    queryset = MyModel.objects.all()
    serializer_class = MyModelSerializer
...