我想使用 Rest 将相关字段检索为 JSON 格式

I want to retrieve related fields as JSON format using Rest

I want to retrieve Student user fields, but I am having a hard time trying to figure out how to do that I tried reading docs but still confused

Studentserializer

class StudentSerializer(serializers.Serializer):
    class Meta:
        model = Student
        fields = ['id', 'user', 'name', 'course']

    def create(self, validated_data):
        Student_det = Student.objects.create(**validated_data)
        return Student_det

序列化器视图

def Student_list(request):
    if request.method == 'GET':
        stud = Student.objects.all()
        serialized = StudentSerializer(stud, many=True)
        print(serialized.data)
        return JsonResponse(serialized.data, safe=False)

学生模型

class Student (models.Model):
    user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
    name = models.CharField(max_length=255)
    course = models.CharField(max_length=255)

您可以检查。我认为有关嵌套序列化程序的部分正是您所需要的。

class UserSerializer(serializers.ModelSerializer):
    class Meta:
        model = User
        fields = ("id", "first_name", "last_name", ) # and you can add other fields here "email", "date_joined", etc.


class StudentSerializer(serializers.ModelSerializer):
    user = UserSerializer()
    
    class Meta:
        model = Student
        fields = ("id", "user", "name", "course", ) 

这会将您的 Student 模型序列化为

{
  "id": 1,
  "user": {
    "id": 1,
    "first_name": "Example",
    "last_name": "User"
  }
  "name": "student name",
  "course": "course name"
}