如何在django rest框架中保存时间戳字段
serializer.py文件如何在django rest框架中保存时间戳字段,django,django-rest-framework,Django,Django Rest Framework,serializer.py文件 class TabsionSerializer(serializers.ModelSerializer): class Meta: model = Tabsion fields = ('sen_id','det_id','latitude','longitude','start_or_end','user_id','username','type','timestamp') 在上面的示例中,时间戳字段由数据库自动设置,
class TabsionSerializer(serializers.ModelSerializer):
class Meta:
model = Tabsion
fields = ('sen_id','det_id','latitude','longitude','start_or_end','user_id','username','type','timestamp')
在上面的示例中,时间戳字段由数据库自动设置,类型字段默认设置为1。因此,这些字段没有添加到数据库中 View.py
class StartReportSave(viewsets.ModelViewSet):
def post(self,request,format=None):
reqData = json.loads(request.body.decode("utf-8"))
savData = {}
savData['sen_d'] = reqData['data']['section']['id'];
savData['det_id'] = reqData['data']['depot']['id'];
savData['latitude'] = reqData['data']['locationData']['latitude'];
savData['longitude'] = reqData['data']['locationData']['longitude'];
savData['start_or_end'] = reqData['data']['start_or_end'] ;
savData['username']= reqData['userData'][0]['username'];
savData['user_id']= reqData['userData'][0]['id'];
serializer = TabsionSerializer(data=savData)
if serializer.is_valid():
serializer.save()
return JsonResponse(serializer.data,status=201))
return JsonResponse(savData,safe=False)
model.py 当我尝试添加数据时,会出现错误 时间戳、类型字段是必需的 我如何解决这个问题 获取此插入记录的id并将其添加到另一个日志表的正确方法是什么
class TabsionSerializer(serializers.ModelSerializer):
class Meta:
model = Tabsion
fields = ('sen_id','det_id','latitude','longitude','start_or_end','user_id','username','type','timestamp')
read_only_fields = ('type','timestamp')
save_data = serializer.save(data=data)
instance_id = save_data.id`
您可以在Tabsion模型中为时间戳字段设置“立即自动”
timestamp = models.DateTimeField(auto_now=True)
class TabsionSerializer(serializers.ModelSerializer):
class Meta:
model = Tabsion
fields = ('sen_id','det_id','latitude','longitude','start_or_end','user_id','username','type','timestamp')
extra_kwargs = {'type': {'read_only': True, 'required': False}, 'timestamp': {'read_only': True, 'required': False}}
class TabsionSerializer(serializers.ModelSerializer):
class Meta:
model = Tabsion
fields = ('sen_id','det_id','latitude','longitude','start_or_end','user_id','username','type','timestamp')
read_only_fields = ('type','timestamp')
timestamp = models.DateTimeField(auto_now=True)