/ / Django obtém tudo, com modelos relacionados - django, django-models, django-rest-framework

O Django obtém tudo, com modelos relacionados - django, django-models, django-rest-framework

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 № 1

Basta 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.