Property timestamp must be a datetime, current is unicode

Abierto
#114 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
38/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
python
Área
backend, database

Línea de trabajo

Lee couchdbkit/schema/base.py alrededor de DocumentSchema.init y couchdbkit/schema/properties.py alrededor de property_init, validate y to_python. Reproduce el problema con la clase Base y el documento JSON mostrados, y luego verifica que cargar valores de timestamp unicode ya no provoque el error de tipo datetime.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

I've created a Document class as so:

class Base(Document):
... doc_schema = IntegerProperty(required=True)
... name = StringProperty(required=True)
... update = DateTimeProperty(required=True, auto_now=True)
... created = DateTimeProperty(required=True, auto_now_add=True)

I have some json returned by a db.get(doc_id)

{u'created': u'2012-01-07T18:17:39Z',
u'doc_schema': 0,
u'doc_type': u'test',
u'name': u'abc',
u'update': u'2012-01-07T18:17:39Z'}

I've also tried db.open_doc()

account = Base(some_json_doc)

Traceback (most recent call last):
File "", line 1, in
File "/home/user/env/local/lib/python2.7/site-packages/couchdbkit/schema/base.py", line 405, in init
DocumentSchema.init(self, _d, **kwargs)
File "/home/user/env/local/lib/python2.7/site-packages/couchdbkit/schema/base.py", line 113, in init
prop.property_init(self, value)
File "/home/user/env/local/lib/python2.7/site-packages/couchdbkit/schema/properties.py", line 95, in property_init
value = self.to_json(self.validate(value, required=False))
File "/home/user/env/local/lib/python2.7/site-packages/couchdbkit/schema/properties.py", line 304, in validate
(self.name, self.data_type.name, type(value).name))
couchdbkit.exceptions.BadValueError: Property update must be a datetime, current is unicode

having a little look at what was going on, it appears the validate method is being called before the to_python so yes it is a unicode string and not a datetime object

Lenguaje dominante
Python
Estrellas
261
Forks
90
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de benoitc/couchdbkit

Todos los issues de benoitc/couchdbkit

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.