标签:
django
django-rest-framework
python

Django REST framework如何自动填写字段值author为当前登录的用户?

提问于:11 天前 ( )最后更新于:11 天前 (2020-11-22 18:56:54)提问人:豆瓣123455


django:3.1.1
drf: 3.12.2

我的模型如下:

class Post(models.Model):
    title = models.CharField(max_length=100, verbose_name='标题')
    content = models.TextField("内容")
    author = models.ForeignKey(User, on_delete=models.CASCADE,)

我想让author字段,自动设置为当前登录的用户

我尝试重写 Post模型的save方法,可是在这个方法里,无法获取到当前登录的用户

有其他办法吗

1个回答

free
free

你用到了drf,那就很容易解决了, 用drf自带的

class PostSerializer(serializers.ModelSerializer):
    author = serializers.HiddenField(
        default=serializers.CurrentUserDefault() # 自动把author设置为当前登录用户
    )

    class Meta:
        model = Post
        fields = ['id', 'title', 'content', 'author', ]
2020-11-22 19:01:21