DRF ModelViewSet保存related_name字段

时间:2019-02-13 11:23:22

标签: python django django-rest-framework

是否可以在不进行此类棘手动作的情况下更新related_name字段?

我需要“公司”字段来填充选择器选项,并用公司关系填充“区域”。因此,它应包含名称参数,并应类似于[{“ pk”:42,“ name”:“ company_name”}]。因此,我将获得所选选项的pk并更新记录。

序列化器

class ZoneSerializer(serializers.ModelSerializer):
    companies = serializers.SerializerMethodField(method_name='_get_companies')

    def _get_companies(self, obj):
        return Company.objects.filter(zone=obj).values('id', 'name')

    def save_object(self, obj, **kwargs):
        obj.companies = Company.objects.filter(pk__in=self.init_data.get("companies", []))
        super(ZoneSerializer, self).save_object(obj, **kwargs)

    class Meta:
        model = CompanyZone
        fields = ("id", "companies")

0 个答案:

没有答案