How to join two models in django-rest-framework

后端 未结 2 862
难免孤独
难免孤独 2020-12-31 08:11

Let say i have two models:

level:

id
file_number
status


level_process:

process_ptr_id
level_id

I want to combine both of my table above

2条回答
  •  盖世英雄少女心
    2020-12-31 08:43

    Try the following. Create serializer for your Level model:

    class LevelSerializer(serializers.ModelSerializer):
        class Meta:
            model = Level
    

    Then, inside LevelProcessSerializer, include LevelSerializer like this:

    class LevelProcessSerializer(serializers.ModelSerializer):
        level = LevelSerializer(read_only=True)
    
        class Meta:
            model = LevelProcess
    

    Usage in your ModelViewset:

    class ViewLevelProcessViewSet(viewsets.ModelViewSet):
        queryset = LevelProcess.objects.all() 
        serializer_class = LevelProcessSerializer
    

    This way, your json will look something like this:

    {
       "id": 1,
       "level": {
          "id": 3,
          "status": "red"
       }
    }
    

    Hope this helps!

提交回复
热议问题