Utilizzo di CouchDB.Mapping e Impossibile impostare un attributo
-
29-10-2019 - |
Domanda
Ciao a tutti e professionisti di Couchdb,
Ho una configurazione di mappatura come tale:
class Product(BaseModel):
name= mapping.TextField()
returned = mapping.DictField(mapping.Mapping.build(
reason = mapping.TextField(),
put_back = mapping.BooleanField()
))
Ho una funzione chiamata getbyid che prende un documento d'identità e restituisce un prodotto tramite:
return Product.load(db, id)
Ho un problema: quando carico un prodotto particolare e provo a impostare il dizionario restituito come tale:
product = Product.getById("123")
product.returned
>>> {}
product.returned['reason'] = "Test"
product.returned
>>> {}
NOTA:Di recente ho modificato il modello per avere il tasto "restituito". I vecchi oggetti di prodotto ottenuti utilizzando Getbyid, non hanno la chiave "restituita" in essi. Questo farebbe la differenza? Non dovrebbe essere giusto, dopo tutto questo è un documento DB e dovrebbe essere flessibile, giusto?
Perché Product.Rourned mi restituisce ancora un dizionario vuoto dopo aver impostato l'attributo "Motivo"?
Ho fatto un po 'di debug e ho capito che la variabile del prodotto è della forma:
<Product u'f90173026e859c65cfa08496115bf7bf'@u'11-3ea1135ceb6361631cbb08471d15df1e' {u'name': u'Printer', u'subProducts': [], u'company': {u'id': u'HP', u'name': u'Hewlett-Packard'}, u'productType':.......>
Che tipo di risultato è questo? È un risultato di visualizzazione o è un documento?
Qualsiasi aiuto è molto apprezzato grazie!
Grazie.
Nessuna soluzione corretta