是否可以在不进行此类棘手动作的情况下更新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")