我能够使用 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/