Django Rest Framework 从外键关系返回单个字段

Dar*_*ech 4 django django-rest-framework

我在 Django 中有两个模型,如下所示:

 class Project(models.Model):
     title = models.CharField(max_length=255)
     client = models.CharField(max_length=255, blank=True, null=True)
     ...


 class Task(models.Model):
     title = models.CharField(max_length=255)
     project = models.ForeignKey(Project)
     ...
Run Code Online (Sandbox Code Playgroud)

我的序列化程序.py

class TaskSerializer(serializers.HyperlinkedModelSerializer):

    project = serializers.RelatedField(
        source='project'
    )

    client = ?

    # I want to return just the project.client field

    class Meta:
        model = Task
        fields = (
            'id', 'project', 'title', 'client'
            ...
        )
Run Code Online (Sandbox Code Playgroud)

Den*_*ehl 5

source字段的 DRF参数支持虚线路径。(见文档

所以你的client-field 将是:

client = serializers.RelatedField(
    source='project.client'
)
Run Code Online (Sandbox Code Playgroud)