django - 我如何保存当前用户的帖子而不查看 django Rest Framework 中端点中的所有用户列表

标签 django django-rest-framework

我能够使用 django rest api 创建发布博客,它几乎没问题,我发现当我发布请求抛出 DRF 端点 dashbored 时,它会在下拉菜单中查看所有用户列表,我不想那样,我想要它插入当前用户而不让它在端点中被编辑 这是代码

class Tarh(models.Model):
    title         = models.CharField(max_length=255)
    context       = models.TextField(default="nothing")
    user          = models.ForeignKey(User,on_delete=models.CASCADE)
    publishedDate = models.DateTimeField(auto_now_add=True)
    rating        = models.IntegerField(default=0)
    img           = models.TextField(null=True)

序列化器

class TarhSerializer(serializers.ModelSerializer):
    class Meta:
        model = Tarh
        fields = ( 'title',"user" ,'context','rating','publishedDate','img','pk')

View 集

class TarhViewSet(viewsets.ModelViewSet):
    """
    API endpoint that allows Tarh to be viewed or edited.
    """
    queryset = Tarh.objects.all()
    serializer_class = TarhSerializer
    def perform_create(self, serializer):
        serializer.save(user=self.request.user)

i wanna hide this dropdown menu of users list

然后只用当前用户发布帖子

最佳答案

serializer.save(user=self.request.user) 应该可以工作。您只能将 user 字段设置为只读,以禁用下拉菜单:

class TarhSerializer(serializers.ModelSerializer):
    class Meta:
        model = Tarh
        fields = ( 'title',"user" ,'context','rating','publishedDate','img','pk')
        read_only_fields = ("user", )

关于django - 我如何保存当前用户的帖子而不查看 django Rest Framework 中端点中的所有用户列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59590912/

相关文章:

python - API View 中的 Django Rest 框架更新方法以更改 db json 中的值

Django REST 框架 : using TokenAuthentication with browsable API

python - Django休息框架: Including multiple choice fields in Serializer

django - 如何在发出 Django Rest api 请求时更新进度条?

python - 无法在 Django 中获取 AngularJS $http.post 数据

python - django sphinx search 总是没有从查询中得到

python - Django 中使用正则表达式动态重定向页面?

python - 没有名为 backends.default.urls 的模块

python - 按属性值对对象进行排序且不允许出现间隙或重复的算法

django - token 的有效期是多长时间? Django REST 框架