django-rest-framework序列化器如何获取用户id

标签 django django-rest-framework

像这样的模型:

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/

相关文章:

python - Django Rest 创建嵌套对象(ManyToMany)

reactjs - 更改日期时间字段以返回 django rest 框架中的 unix 时间戳

python - Django Rest框架嵌套关系

django-rest-framework - write_only_fields 在 django rest 框架序列化程序中没有任何影响

python - 如何在 Django REST 框架中使用事务?

python - Django1.1模型字段值返回前预处理

python - "Upload"来自 django shell 的文件

django - DRF 自定义权限

DjangoORM : Resolve F Expression in Custom DB Function

django - Nginx,无法 fork : Cannot allocate memory