/ / Django reçoit tout, avec les modèles associés - django, django-models, django-rest-framework

Django get all, avec des modèles associés - django, django-models, django-rest-framework

Problème:

J'utilise Django Rest Framework et je souhaite récupérer tous les modèles avec les relations incluses, comme ceci:

TestModel.objects.all()

Mon modèle ressemble à ceci:

class TestModel(models.Model):
name = models.CharField(max_length=32)
related_model = models.ForeignKey(TestRelation)

Le problème, c’est que je n’obtiens que les clés primaires pour related_model mais j'ai besoin de l'ensemble related_model!

J'utilise la ListCreateAPIView, avec le queryset ci-dessus (TestModel.objects.all()) et la forme la plus élémentaire du ModelSerializer.

J'ai essayé le PrimaryKeyRelatedField mais j'obtiens le même résultat ..

Merci!

Réponses:

1 pour la réponse № 1

Créez simplement un sérialiseur pour votre modèle associé:

class TestRelationSerializer(serializers.ModelSerializer):

class Meta:
meta = TestRelation

et l'utilisation est comme champ dans TestModelSerializer:

class TestModelSerializer(serializers.ModelSerializer):
related_model = TestRelationSerializer()

Vous pouvez aussi le faire autrement, en utilisant TestModelSerializer comme champ dans TestRelationSerializer avec beaucoup mis à true:

class TestRelationSerializer(serializers.ModelSerializer):
testmodel_set = TestModelSerializer(many=True)

Rappelez-vous simplement que vous ne pouvez pas faire les deux à la fois car la récursion est infinie.