![](/img/trans.png)
[英]How To Get The Local TIme In Models.DateTimeField() In Django?
[英]How to modify Django models.DateTimeField type?
我正在使用 django rest api 運行 api 服務器。 我想將模型中的 2020-01-01T00:00:00+09:00 更改為 2020-01-01 00:00:00。
這是我的模型代碼..
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
還有我的序列化器代碼..
from rest_framework import serializers
from .models import Data
class MovieSerializer(serializers.ModelSerializer):
class Meta:
model = Data
fields = ('id','time','sensor','measure')
最后我的看法
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)
我想我不能修改視圖和序列化的代碼。 我需要一種方法來修改模型中的類型。
謝謝你。
模型字段與格式無關。 您可以在DateTimeField
序列化器字段 [drf-doc] 中指定格式:
class MovieSerializer(serializers.ModelSerializer):
time = serializers.DateTimeField(format='%Y-%m-%d %H:%M:%S')
class Meta:
model = Data
fields = ('id','time','sensor','measure')
如果要更改所有DateTimeField
的格式,可以更改DATETIME_FORMAT
設置 [drf-doc] API_SETTINGS
:
# settings.py
# …
REST_FRAMEWORK = {
'DATETIME_FORMAT': '%Y-%m-%d %H:%M:%S'
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.