Django rest framework Django:在外键字段中保存字符串时出错
我是Django新手,我想将来自Android应用程序的数据保存到Django服务器。我在Django有两种型号:Django rest framework Django:在外键字段中保存字符串时出错,django-rest-framework,Django Rest Framework,我是Django新手,我想将来自Android应用程序的数据保存到Django服务器。我在Django有两种型号: class Route(models.Model): route_key = models.CharField(max_length=250) name = models.CharField(max_length=250, default='') def __str__(self): return self.route_key 以及: 我
class Route(models.Model):
route_key = models.CharField(max_length=250)
name = models.CharField(max_length=250, default='')
def __str__(self):
return self.route_key
以及:
我有一个序列化程序:
class TrackSerializer(serializers.ModelSerializer):
class Meta:
model = Track
fields = '__all__'
我在views.py的POST方法中获取数据:
class TrackList(APIView):
def post(self, request):
serializer = TrackSerializer(data=request.data)
print(request.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)
在Android中,我创建了一个JSONObject,这就是我要发送到服务器的内容
问题是,如果我只从Android发送属性'delivery'和'track',我可以保存值而不会出现任何错误,但是如果我也发送'route_key',它会给我400个错误请求,但我正在接收数据
这是我在服务器上收到的,3个字符串
{'delivery': 'Miriam', 'track_route_key': '22', 'track': '(43.30725, -2.010733, 10 jul. 2017 17:40:40)'}
这就是我得到的错误:
[10/Jul/2017 17:40:55] "POST /listroutes/ HTTP/1.1" 400 67
我确信在验证“track\u route\u key”字段时会发生错误。如何将“track\u route\u key”字符串转换为外键并保存此值
提前感谢。
外键
(s)映射到PrimaryKeyRelatedField
(),因此您不必转换轨迹路径(track\u route\u Key
)。您确定错误是为了验证该字段吗?更多信息将很有帮助,配置日志记录,它将告诉您问题所在。您还可以尝试在shell中反序列化该数据。您需要显示来自服务器的具体错误消息。我最终成功创建了该对象,但忘了将此行添加到serializer类track\u route\u key=serializers.PrimaryKeyRelatedField(read\u only=True,many=True)
。但现在,在Django Rest Api视图中,这些字段显示为null。
[10/Jul/2017 17:40:55] "POST /listroutes/ HTTP/1.1" 400 67