下午好,我在Django中使用以下模型,并且字段last_update是Faithful DateTme字段,当我对其进行序列化时,其表示如下:
“ 2019-08-06T14:19:05-04:00”
我想这样代表它:
“ 2019-08-06 19:05:04”
class Interface(models.Model):
id_interface=models.PositiveIntegerField(primary_key=True)
id_EquipoOrigen=models.ForeignKey(Equipo,on_delete=models.DO_NOTHING,related_name='equipo_origen')
id_PuertoOrigen=models.ForeignKey(Puerto,on_delete=models.DO_NOTHING,related_name='puerto_origen',
null=True,blank=True)
estatus=models.BooleanField(default=False)
etiqueta_prtg=models.CharField(max_length=80,null=True,blank=True)
grupo=models.PositiveSmallIntegerField(default=0,blank=True)
if_index=models.PositiveIntegerField(default=0,blank=True)
bw=models.PositiveSmallIntegerField(default=0,blank=True)
bw_al=models.PositiveSmallIntegerField(default=0,blank=True)
id_prtg=models.PositiveSmallIntegerField(default=0,blank=True)
ospf=models.BooleanField(default=False)
description=models.CharField(max_length=200,null=True,blank=True)
id_EquipoDestino=models.ForeignKey(Equipo,on_delete=models.DO_NOTHING,related_name='equipo_destino')
id_PuertoDestino=models.ForeignKey(Puerto,on_delete=models.DO_NOTHING,related_name='puerto_destino')
ultima_actualizacion=models.DateTimeField(auto_now=True)
class Meta:
db_table='Interface'
class InterfaceSerializer(serializers.ModelSerializer):
# Las siguientes lineas me permiten agregan campos de otros modelos al modelo en cuestion que estoty serializando a traves de llaves foraneas.
#Se le agrega la propiedad de read_only=True para que el campo no sea editable.
EquipoOrigen = serializers.CharField(source='id_EquipoOrigen.nombre',read_only=True)
PuertoOrigen = serializers.CharField(source='id_PuertoOrigen.nombre',read_only=True)
LocalidadOrigen=serializers.CharField(source='id_EquipoOrigen.localidad',read_only=True)
CategoriaOrigen=serializers.CharField(source='id_EquipoOrigen.categoria',read_only=True)
ip_gestion_origen=serializers.CharField(source='id_EquipoOrigen.ip_gestion',read_only=True)
vendedor_origen=serializers.CharField(source='id_EquipoOrigen.vendedor',read_only=True)
EquipoDestino = serializers.CharField(source='id_EquipoDestino.nombre',read_only=True)
ip_gestion_destino=serializers.CharField(source='id_EquipoDestino.ip_gestion',read_only=True)
vendedor_destino=serializers.CharField(source='id_EquipoDestino.vendedor',read_only=True)
PuertoDestino = serializers.CharField(source='id_PuertoDestino.nombre',read_only=True)
LocalidadDestino=serializers.CharField(source='id_EquipoDestino.localidad',read_only=True)
CategoriaDestino=serializers.CharField(source='id_EquipoDestino.categoria',read_only=True)
ultima_actualizacion=serializers.CharField(source='utlima_actualizacion')
#Los campos que voy a mostrar en mi serializacion con la clase Meta
class Meta:
model=Interface
fields=('id_interface','id_EquipoOrigen','EquipoOrigen','ip_gestion_origen','id_PuertoOrigen',
'PuertoOrigen','LocalidadOrigen','CategoriaOrigen','vendedor_origen','estatus',
'etiqueta_prtg','grupo','if_index','bw','bw_al','id_prtg','ospf','description',
'id_EquipoDestino','EquipoDestino','ip_gestion_destino','vendedor_destino','id_PuertoDestino','PuertoDestino','LocalidadDestino',
'CategoriaDestino','ultima_actualizacion',)
class InterfacesViewSet(viewsets.ModelViewSet):
queryset=Interface.objects.all()
serializer_class=InterfaceSerializer
pagination_class=PostPageNumberPagination
filter_class=InterfacesFilter
答案 0 :(得分:0)
尽管我没有看到您的last_update
作为模型的模型字段。您可以按照
class InterfaceSerializer(serializers.ModelSerializer):
....your serializer code
def get_last_update(self, last_update):
return last_update.strftime("%Y-%m-%d %H:%M:%S")
答案 1 :(得分:0)
ultima_actualizacion = serializers.DateTimeField(format="%Y-%m-%d %H:%M:%S")
应该为您解决问题