【发布时间】:2019-06-20 04:55:34
【问题描述】:
models.py
class UserContentItem(models.Model):
owner = models.ForeignKey(User, on_delete=models.CASCADE)
title = models.CharField(max_length=200)
created_date = models.DateTimeField(default=timezone.now)
views.py
class UserContentItemView(APIView):
permission_classes = (permissions.IsAuthenticatedOrReadOnly, )
def post(self, request, format=None):
data = request.data
data['owner'] = request.user.id
serializer = UserContentItemSerializer(data=data)
if serializer.is_valid():
serializer.save()
return Response(serializer.data, status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
serializers.py
class UserContentItemSerializer(serializers.ModelSerializer):
class Meta:
model = UserContentItem
fields = ('id', 'owner', 'title', 'created_date')
我正在使用 Django Rest Framework 和简单的 jwt 构建一个 API。我想允许经过身份验证的用户发布一个新的 UserContentItem,它对 User 具有 FK 依赖关系,但 User 不是 POST 有效负载的一部分。我能够弄清楚如何做到这一点的唯一方法是如上所述,将request.user.id 添加到请求数据中,然后再将其传递给序列化程序。有没有更好的方法来序列化UserContentItem并达到同样的目的?
【问题讨论】:
标签: django python-3.x django-rest-framework python-3.5