Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

920
Visualizações
How to join two models in django-rest-framework

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 to display it in one API using django-rest-framework.. I'm looking for the example on the internet and i cannot find it...by the way i'm using python 2.7 , django 1.10.5 and djangorestframework 3.6.2

serializer.py

class LevelSerializer(serializers.HyperlinkedModelSerializer):
    id = serializers.ReadOnlyField()
    class Meta:
        model = Level
        fields = ('__all__')

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

    class Meta:
        model = LevelProcess
        fields = ('__all__')

views.py

class ViewLevelProcessViewSet(viewsets.ModelViewSet):
    processes = LevelProcess.objects.all()
    serializer_class = LevelProcessSerializer(processes, many=True)
about 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

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!

about 4 years ago · Santiago Trujillo Relatório

0

Don't try to "join" tables. This isn't SQL.

I am assuming your model look like Following,

class Level(models.Model):
    .......

class LevelProcess(models.Model):
    level = models.ForeignKey(Level)

Now, let's walk for query,

l = Level.objects.filter(id=level_id).first()
lp = l.level_process_set.all()

This is how we do in Django ORM.

about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda