首页 > 解决方案 > 您如何自动填写此字段(bizuser)ForeignKey 而不必寻找 bizuser ID

问题描述

我的模特

class XP(models.Model):
 bizuser = models.ForeignKey(BizUser, on_delete=models.CASCADE)
 current_xp_price = models.IntegerField(default=0)
 xp_created_at = models.DateTimeField(auto_now_add=True)
 xp_updated_at = models.DateTimeField(auto_now_add=True)

我有这个功能,如果当前用户经过身份验证(jwttokens),我可以创建一个我想要的 XP,然后用户可以继续创建 XP。当我发布这些数据时,我会到达我必须填写的字段,即 current_xp_price 和bizuser 是 ForeignKey

意见

class create_xp(APIView):
def post(self, request):
    if request.user.is_authenticated:
        current_user = request.BizUser
        serializer = XPSerializer(data=request.data)
        request.data["bizuser"] = current_user.id

        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)
    else:
        return Response(status=status.HTTP_401_UNAUTHORIZED)

序列化器

class XPSerializer(serializers.ModelSerializer):
class Meta:
    model = XP
    fields = ['current_xp_price', ]

标签: pythondjango-rest-framework

解决方案


推荐阅读