PrimaryKeyRelatedField не сериализует объект
У меня есть такая игровая модель:
class Game(models.Model):
owner = models.ForeignKey(User, null=True, blank=True, on_delete=models.SET_NULL)
name = models.CharField(max_length=255)
slug = models.SlugField()
...
И сериализатор вроде этого:
class GameSerializer(serializers.ModelSerializer):
owner = serializers.PrimaryKeyRelatedField(many=False, read_only=True)
class Meta:
model = Game
fields = (
"id",
"name",
"description",
"owner"
)
Когда я делаю запрос, я получаю следующее:
description: "TestDescription"
name: "TestName"
owner: 1
Я ожидал, что owner
будет словарем с полями типа email
, username
и так далее. Что не так?
PrimaryKeyRelatedField
даст вам только первичный ключ (https://www.django-rest-framework.org/api-guide/relations/#primarykeyrelatedfield), а не dict
. Что вы хотите сделать, так это определить:
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ("username", "email", "first_name", "last_name")
И используйте это в GameSerializer
:
class GameSerializer(serializers.ModelSerializer):
class Meta:
model = Game
fields = ("id", "name", "description", "owner")
owner = UserSerializer()