在我serializers.py我可以这样做:Django Rest Framework中的序列化器字段过滤?
class BoxSerializer(serializers.ModelSerializer):
user = serializers.ReadOnlyField(source='user.email')
playlist = PrimaryKeyRelatedField(allow_null=True, source='playlist.name',
queryset=Playlist.objects.all(), required=False)
class Meta:
model = Box
我甚至可以做这样的事情(硬编码,但工程):
playlist = PrimaryKeyRelatedField(allow_null=True, source='playlist.name',
queryset=Playlist.objects.filter(user=User.objects.get(id=4)), required=False)
我在这个新的,我想知道如果有一种方法,我可以通过一些方法或东西会做这样的事情request.user:
(我知道这是不正确,这只是用来了解我的点):
playlist = PrimaryKeyRelatedField(allow_null=True, source='playlist.name',
queryset=Playlist.objects.filter(user=request.user), required=False)
或者,我可以做这样的事情(同样不正确的):
playlist = PrimaryKeyRelatedField(allow_null=True, source='playlist.name',
queryset='get_playlists', required=False)
def get_playlists(self):
user = self.context['request'].user
return Playlist.objects.filter(user=user)
Box的“用户”是否应该与播放列表的“用户”相同? – Mijamo