Problema:
Eu estou usando o Django Rest Framework e eu quero buscar todos os modelos com os relacionamentos incluídos, como este:
TestModel.objects.all()
Meu modelo é assim:
class TestModel(models.Model):
name = models.CharField(max_length=32)
related_model = models.ForeignKey(TestRelation)
O problema é que eu só recebo as chaves primárias para related_model
mas eu preciso do todo related_model
!
Eu estou usando o ListCreateAPIView, com o queryset acima (TestModel.objects.all()
) e a forma mais básica do ModelSerializer.
Eu tentei o PrimaryKeyRelatedField
mas eu tenho o mesmo resultado ..
Obrigado!
Respostas:
1 para resposta № 1Basta criar um serializador para o seu modelo relacionado:
class TestRelationSerializer(serializers.ModelSerializer):
class Meta:
meta = TestRelation
e usar é como campo em TestModelSerializer
:
class TestModelSerializer(serializers.ModelSerializer):
related_model = TestRelationSerializer()
Você também pode fazer o contrário, usando TestModelSerializer
como campo em TestRelationSerializer
com muitos definidos para true:
class TestRelationSerializer(serializers.ModelSerializer):
testmodel_set = TestModelSerializer(many=True)
lembre-se, você não pode fazer as duas coisas de uma vez por causa da recursão infinita que faz.