KeyError accessing results from Document.view when reduce=False and value is dictionary

Abierto
#142 1 comentario 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
35/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
python
Área
database

Línea de trabajo

Reproduce el problema con la sesión de Django shell y la definición de la vista documentadas. Empieza en couchdbkit/client.py, alrededor de iterator, first y row_wrapper, y después inspecciona couchdbkit/schema/util.py, alrededor de wrap; se considera terminado cuando acceder al resultado de la vista con reduce=False y un valor de diccionario ya no produce un KeyError.

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

Descripción

Additional details at mailing list post:
https://groups.google.com/forum/?fromgroups#!topic/couchdbkit/OldePEe3uxU

Ubuntu 12.04
Couchdbkit 0.6.2
Couchdb 1.2
Django 1.5.dev17942
Python 2.7.3

/home/vincent/temp/greeting/views/all contains a file called map.js with the contents:
function(doc) { emit( 1, {'a': 1, 'b': 2} ); }
There is no reduce.js (so reduce=False is unnecessary)

Reproduce via the following interactive Django Python session:

$ ./manage.py shell

from couchdbkit import *
class Greeting(Document):
 def __unicode__(self):
  return None

server = Server()
db = server.get_or_create_db("greeting")
Greeting.set_db(db)
greet = Greeting()
greet.test = "test"
greet.save()
from couchdbkit.designer import push
push('/home/vincent/temp/greeting', db)
greets = Greeting.view('greeting/all')
greets.count()  # returns 1
greets.first()

Traceback (most recent call last):
File "", line 1, in
File "/usr/local/lib/python2.7/dist-packages/couchdbkit/client.py", line 930, in first
return list(self)[0]
File "/usr/local/lib/python2.7/dist-packages/couchdbkit/client.py", line 920, in iterator
yield wrapper(row)
File "/usr/local/lib/python2.7/dist-packages/couchdbkit/client.py", line 901, in row_wrapper
return schema(data)
File "/usr/local/lib/python2.7/dist-packages/couchdbkit/schema/util.py", line 29, in wrap
cls = classes[doc_type]
KeyError: None

Via the URL http://127.0.0.1:5984/greeting/_design/greeting/_view/all Couchdb gives the output

{"total_rows":1,"offset":0,"rows":[{"id":"49ca1d5086e0c7eb36471d2e621f5a49","key":1,"value":{"a":1,"b":2}}]}

This is the line from the Couchdb log for the Couchdbkit query

[info] [<0.12793.16>] 127.0.0.1 - - GET /greeting/_design/greeting/_view/all?wrap_doc=true 200

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.