/ / Django dostaje wszystko, z powiązanymi modelami - django, django-models, django-rest-framework

Django dostaje wszystko, z powiązanymi modelami - django, django-models, django-rest-framework

Problem:

Używam Django Rest Framework i chcę pobrać wszystkie modele z powiązanymi relacjami, jak poniżej:

TestModel.objects.all()

Mój model wygląda następująco:

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

Problem polega na tym, że otrzymuję tylko klucze podstawowe related_model ale potrzebuję całości related_model!

Używam ListCreateAPIView, z powyższym zestawem zapytań (TestModel.objects.all()) i najbardziej podstawową formę ModelSerializer.

Próbowałem PrimaryKeyRelatedField ale otrzymuję ten sam wynik ...

Dzięki!

Odpowiedzi:

1 dla odpowiedzi № 1

Po prostu utwórz serializator dla swojego pokrewnego modelu:

class TestRelationSerializer(serializers.ModelSerializer):

class Meta:
meta = TestRelation

a użycie jest jak pole TestModelSerializer:

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

Możesz też zrobić to inaczej, używając TestModelSerializer jako pole w TestRelationSerializer z wieloma ustawionymi na true:

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

pamiętaj tylko, że nie możesz zrobić obu naraz z powodu nieskończonej rekurencji, którą to czyni.