我有以下代碼完美工作。通過選擇圖像和用戶,我可以從DRF面板創建一個Post
對象。不過,我希望DRF通過當前登錄的用戶填充用戶字段。如何在Django Rest Framework中將當前用戶設置爲用戶字段?
models.py
class Post(TimeStamped):
user = models.ForeignKey(User)
photo = models.ImageField(upload_to='upload/')
hidden = models.BooleanField(default=False)
upvotes = models.PositiveIntegerField(default=0)
downvotes = models.PositiveIntegerField(default=0)
comments = models.PositiveIntegerField(default=0)
serializers.py
class PostSerializer(serializers.ModelSerializer):
class Meta:
model = Post
fields = ['id', 'user', 'photo']
views.py
class PhotoListAPIView(generics.ListCreateAPIView):
queryset = Post.objects.filter(hidden=False)
serializer_class = PostSerializer
authentication_classes = (SessionAuthentication, BasicAuthentication)
permission_classes = (IsAuthenticated,)
我該怎麼辦 這個?
嗨。如果我在'serializers.py'文件中使用'def validate_user(self,value): 返回self.context ['request']。user'會怎麼樣?這也起作用。這兩者之間有什麼內在的區別嗎? – MiniGunnR
@MiniGunnR假設你希望用戶成爲序列化的一部分,這也可以。我的方法無論如何都會工作 – DaveBensonPhillips