Проблем:
Използвам Django Rest Framework и искам да изтегля всички модели с включените връзки, като това:
TestModel.objects.all()
Моят модел изглежда така:
class TestModel(models.Model):
name = models.CharField(max_length=32)
related_model = models.ForeignKey(TestRelation)
Проблемът е, че получавам само Основните ключове за related_model
но имам нужда от цялото related_model
!
Използвам ListCreateAPIView, с горния въпросник (TestModel.objects.all()
) и най-основната форма на ModelSerializer.
Опитах се PrimaryKeyRelatedField
но получавам същия резултат ..
Благодаря!
Отговори:
1 за отговор № 1Просто създайте сериализатор за свързания си модел:
class TestRelationSerializer(serializers.ModelSerializer):
class Meta:
meta = TestRelation
и използването е като поле в TestModelSerializer
:
class TestModelSerializer(serializers.ModelSerializer):
related_model = TestRelationSerializer()
Можете да го направите и по друг начин, като използвате TestModelSerializer
като поле в TestRelationSerializer
с множеството е истина:
class TestRelationSerializer(serializers.ModelSerializer):
testmodel_set = TestModelSerializer(many=True)
само не забравяйте, че можете да направите и двете едновременно поради безкрайната рекурсия, която прави.