【问题标题】:django rest framework: Dynamic serializer and ViewSetdjango rest 框架:动态序列化器和 ViewSet
【发布时间】:2020-03-20 12:57:41
【问题描述】:

作为免责声明,我是 django 和 django rest 框架的新手。

我有一个模型,其中包含上次修改日期和上次修改用户等元数据列。这些数据应该在 API 中可供查看,但将由后端自动设置,因此创建/更新时不需要。据我了解,我可以创建一个动态序列化程序,如docs 所示。

但是如何在 ViewSet 上使用动态序列化?或者这根本不可能?

【问题讨论】:

    标签: serialization django-rest-framework


    【解决方案1】:

    如果您希望上次修改日期和上次修改用户为只读,则无需创建 DynamicSerializer。您需要做的就是在序列化程序上将字段设置为只读。

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-16
      • 2015-06-29
      • 1970-01-01
      • 2020-03-22
      • 2015-10-29
      • 2020-05-08
      • 1970-01-01
      • 2019-07-09
      相关资源
      最近更新 更多