首页 > 解决方案 > 如何将 DataTimeField 字段的表示更改为要序列化的格式 '%Y-%m-%d%H:%M:%S'

问题描述

下午好,我在 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

在此处输入图像描述

标签: djangodjango-rest-framework

解决方案


ultima_actualizacion = serializers.DateTimeField(format="%Y-%m-%d %H:%M:%S")

应该为你解决问题


推荐阅读