我是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 Track(models.Model):
track_route_key = models.ForeignKey(Route, on_delete=models.CASCADE, null=True)
delivery = models.CharField(max_length=250, default='')
track = models.CharField(max_length=10000)
def __str__(self):
return self.delivery
我有这个序列化器:
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,并且是我发送给服务器的。
问题是,如果我只发送属性' delivery'和'追踪'从Android,我可以保存值没有任何错误,但如果我也发送' 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_route_key'时会发生错误。领域。如何转换' track_route_key'字符串到外键并保存此值?
提前谢谢。