[英]How to deserialize an array of primary keys with Django Rest Framework PrimaryKeyRelatedField
我在設置序列化程序時遵循了文檔。
class PlaylistSerializer(serializers.ModelSerializer):
songs = serializers.PrimaryKeyRelatedField(queryset=Song.objects.all(), many=True, allow_empty=True, required=False)
class Meta:
model = Playlist
fields = ['id', 'name', 'songs', 'created_at']
如果我在 django 管理員的播放列表中添加幾首歌曲並發送獲取請求,我會得到我想要的結果。
{
"id": 4,
"name": "teszt3",
"songs": [
351,
350
],
"created_at": "2022-01-14T14:04:36.238350Z"
}
但我想使用類似的歌曲主鍵列表創建或更新播放列表。 如果我使用此正文發送 POST 請求:
{
"name": "test2",
"songs": [350, 351]
}
我收到此錯誤:
Incorrect type. Expected pk value, received str
如果歌曲字段中只有一個數字(主鍵),它可以工作,但我想一次創建包含多首歌曲的播放列表。 有沒有辦法解析該數組,或者我該如何解決這個問題?
您的模型或端點可能有一些錯誤。 由於您沒有提供該信息,因此這是一個與您的序列化程序完全兼容的工作示例。
模型.py
class Song(models.Model):
pass
class Playlist(models.Model):
name = models.CharField(max_length=50)
songs = models.ManyToManyField(Song)
created_at = models.DateTimeField(auto_now_add=True)
視圖.py
class CreatePlaylist(CreateAPIView):
serializer_class = PlaylistSerializer
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.