像这样的模型:
class Album(models.Model):
artist = models.ForeignKey(Musician, on_delete=models.CASCADE)
name = models.CharField(max_length=100)
release_date = models.DateField()
num_stars = models.IntegerField()
和序列化器:
class AlbumSerializers(serializers.ModelSerializer):
count=serializers.SerializerMethodField()
class Meta:
module=Album
fields=('__all__')
我只是想知道如何在序列化器中获取 user.id
最佳答案
Django REST 框架的序列化器使用上下文来保存这些内容。它用于在使用 HyperlinkedSerializers 时查找关联的主机名,并记录在 here 中。
默认情况下,通用 View 会添加当前请求,这意味着您可以执行以下操作:
class AlbumSerializers(serializers.ModelSerializer):
count=serializers.SerializerMethodField()
class Meta:
module=Album
fields=('__all__')
def get_count(self,obj):
# Provided the user is logged:
user_id = self.context['request'].user.id
# Now do whatever with user_id
return
关于django-rest-framework序列化器如何获取用户id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45139827/