【问题标题】:two unrelated models in one serializer django rest framework一个序列化程序中的两个不相关的模型 django rest 框架
【发布时间】:2020-10-26 15:22:05
【问题描述】:

我尝试了几种不同的方法来在一个序列化程序中包含两个不相关的模型,以便在 DRF api 响应中使用。这是下面的最新尝试,但不起作用。我正在尝试将 TenantAppUnitExpandedSerializer 下的租户模型中的这两个值(enable_hourly_rate / vacancy_number)包含到 TenantAppUnitSerializer 中。如何以正确的方式做到这一点?

提前感谢您的帮助。

到目前为止的代码:

class TenantAppUnitExpandedSerializer(serializers.ModelSerializer):

    class Meta:
        model = Tenant
        fields = (
            'enable_hourly_rate',
            'vacancy_number',
        )

class TenantAppUnitSerializer(TenantAppUnitExpandedSerializer):

    enable_hourly_rate = serializers.SerializerMethodField()
    vacancy_number = serializers.SerializerMethodField()

    
    class Meta:
        model = Unit
        fields = (
            'id',
            'unit_name',
            'city',
            'phone',
            'enable_hourly_rate',
            'vacancy_number'
        )

【问题讨论】:

    标签: django django-rest-framework


    【解决方案1】:

    将它作为一个字段包含在您希望使用的serializer 中。 然后 field_name = ThatParticularSerializer() 你想包含它。

    你的序列化器应该是这样的。

    class TenantAppUnitSerializer(TenantAppUnitExpandedSerializer):
        tenant_extended_unit = TenantAppUnitExpandedSerializer(many=False) # <-- here
        # similarly you can set many=True if you are expecting multiple instances of it
        enable_hourly_rate = serializers.SerializerMethodField()
        vacancy_number = serializers.SerializerMethodField()
    
        
        class Meta:
            model = Unit
            fields = (
                'id',
                'unit_name',
                'city',
                'phone',
                'enable_hourly_rate',
                'vacancy_number',
                'tenant_extended_unit`, # <-- here
            )
    

    【讨论】:

      猜你喜欢
      • 2017-11-06
      • 2018-03-10
      • 2017-06-25
      • 2021-05-29
      • 2021-09-05
      • 2015-02-25
      • 2019-10-26
      • 2017-02-08
      • 2020-12-24
      相关资源
      最近更新 更多