Rah*_*rma 2 django django-rest-framework
在我的 Django 应用程序中,我得到这样的 Json:
"sales_order": 102,
"transport_by": 4,
Run Code Online (Sandbox Code Playgroud)
我想扩展sales_order并将其替换为其所有者的first_name+ last_name。所以我尝试使用 slug 相关字段,但我不确定如何从中获取两个值。
这是我尝试过的:
class AtableSOSerializer(serializers.ModelSerializer):
owner = serializers.SlugRelatedField(read_only=True, slug_field='first_name'+' '+'last_name')
class Meta:
model = MaterialRequest
fields = "__all__"
class AtableFlowListSerializer(serializers.ModelSerializer):
class Meta:
model = AllotmentFlow
fields = "__all__"
class AllotmentTableSerializer(serializers.ModelSerializer):
flows = AtableFlowListSerializer(many=True)
sales_order = AtableSOSerializer(read_only=True)
class Meta:
model = Allotment
fields = "__all__"
Run Code Online (Sandbox Code Playgroud)
但出现了明显的错误:
AttributeError:“用户”对象没有属性“名字姓氏”
如何获取 JSON 中的名字 + 姓氏?
我和你有同样的问题:在 models.py 中向你的模型添加一个属性,然后在你的序列化器中使你的 slug_field 是你在模型中创建的属性。
@property
def full_name(self):
return self.first_name+" "+self.last_name
owner = serializers.SlugRelatedField(read_only=True, slug_field='full_name')
Run Code Online (Sandbox Code Playgroud)