I am running an api server using django rest api. I want to change 2020-01-01T00:00:00+09:00 to 2020-01-01 00:00:00 in model.
This is my model code..
from django.db import models
class Data(models.Model):
time = models.DateTimeField(auto_now_add=True)
sensor = models.CharField(max_length=30)
measure = models.IntegerField()
def __str__(self):
return self.sensor
And my serializer code..
from rest_framework import serializers
from .models import Data
class MovieSerializer(serializers.ModelSerializer):
class Meta:
model = Data
fields = ('id','time','sensor','measure')
lastly my view
from .models import Data
from .serializers import MovieSerializer
from django.http import Http404
from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework import status
class DataList(APIView):
def get_object(self, pk):
try:
return Data.objects.filter(sensor=pk)
except Data.DoesNotExist:
raise Http404
def get(self, request, format=None):
dt = Data.objects.all()
serializer = MovieSerializer(dt, many=True)
return Response(serializer.data)
def post(self, request, format=None):
val = request.data.values()
if val is not None:
for i in val:
snippet = self.get_object(i)
serializer = MovieSerializer(snippet, many=True)
return Response(serializer.data)
I think I can't modify the code of view and serialize. I need a way to modify the type in the model.
Thank you.
A model field is not concerned with the format. You can specify the format in the DateTimeField
serializer field [drf-doc] :
class MovieSerializer(serializers.ModelSerializer):
time = serializers.DateTimeField()
class Meta:
model = Data
fields = ('id','time','sensor','measure')
If you want to change the format for all DateTimeField
s, you can change the DATETIME_FORMAT
setting [drf-doc] API_SETTINGS
:
# settings.py
# …
REST_FRAMEWORK = {
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.