2
自分のサイトに安らかなAPIを設定したいと思います。私はdjango-rest-frameworkを使いました。 データベースからオブジェクトを取得すると、関連オブジェクトが表示されません。スニペット以下なぜdjango-rest-frameworkにOneToOneFieldデータが表示されないのですか - django
は私の最初のモデル(親モデル)である:あなたが第二のスニペットで見るよう
class Klass(models.Model):
title = models.CharField(max_length=50)
description = models.CharField(max_length=500)
teacher = models.ForeignKey(Profile,related_name='teacher', on_delete=models.CASCADE)
university = models.CharField(max_length=50, blank=True, null=True)
、:
class Profile(models.Model):
user = models.OneToOneField(settings.AUTH_USER_MODEL, related_name='profile',on_delete=models.CASCADE)
name = models.CharField(max_length=30)
family = models.CharField(max_length=50)
と以下のスニペットは、私の第2のモデル(子モデル)でありますteacher
はProfile
モデルからその値を取得します。
しかし、django-rest-framework APIビューでは、茶器の名前を表示する代わりにpk
と表示されます。
# serializer
class KlassSerializer(serializers.ModelSerializer):
class Meta:
model = Klass
fields = ('id', 'title', 'description', 'teacher')
# view
class KlassView(APIView):
def get(self, request, pk=None):
if pk is not None:
klass = Klass.objects.filter(pk=pk).get()
serializer = KlassSerializer(klass)
return Response({'message': 'class get ', 'data': serializer.data,})
、これが結果です::
以下のスニペットは、私のシリアライザおよび図である
{
"message": "class get ",
"data": {
"id": 13,
"title": "ُThe First Class",
"description": "Nothing for now!",
"teacher": 2
}
}
どのように私はこの問題を解決することができますか? おかげ
申し訳ありませんが、それを試し、それが働いた真=多くを除去することで、ええmany' –
'削除してみてください。 – msln
お気軽に –