【发布时间】:2021-11-18 23:23:49
【问题描述】:
对于 Django Rest 框架来说非常新,因此希望能得到一些帮助。当我尝试使用适当的身份验证令牌在 Postman 中执行 POST 请求时,标题中出现错误。
我创建了一个表,我想向其发送 POST 请求,但在让用户 FK 被接受为列之一时遇到问题。请参阅下面的模型/序列化器/视图:
型号
class TestData (models.Model):
TestSDG = models.DecimalField(decimal_places=0, max_digits=2, default=0)
user = models.ForeignKey("auth.User", related_name="testdata", on_delete=models.CASCADE)
序列化器
class TestDataSerializer(serializers.ModelSerializer):
class Meta:
model = TestData
fields = ('id', 'TestSDG')
查看
@csrf_exempt
def testDataApi(request, id=0):
if request.method == 'GET':
testdata = TestData.objects.all()
testdata_serializer = TestDataSerializer(testdata,many=True)
return JsonResponse(testdata_serializer.data,safe=False)
elif request.method == 'POST':
testdata_data=JSONParser().parse(request)
testdata_serializer=TestDataSerializer(data=testdata_data)
if testdata_serializer.is_valid():
testdata_serializer.save(user=request.user)
return JsonResponse("Added Successfully", safe=False)
如果我不使用用户作为外键,POST 请求工作正常,我将testdata_serializer.save(user=request.user) 改回testdata_serializer.save(),但我希望表需要用户的 id。
感谢任何帮助,谢谢。
【问题讨论】:
标签: django django-models django-rest-framework django-views django-urls