Domanda

Voglio realizzare un qualche tipo di codifica funzionalità per la mia app. Voglio fare qualcosa di simile ...

class Item(db.Model):
  name = db.StringProperty()
  tags = db.ListProperty(str)

Supponiamo che io ottengo una ricerca che hanno 2 o più tag. Per esempio. "Ristorante" e "mexican".

Ora, voglio ottenere elementi che hanno tutti, in questo caso 2, dato tag.

Come posso fare? O c'è un modo migliore per attuare ciò che voglio?

È stato utile?

Soluzione

Credo che si desidera tag per essere memorizzati come 'db.ListProperty (db.Category)' e poi li interrogo con qualcosa di simile:

   return db.Query(Item)\
             .filter('tags = ', expected_tag1)\
             .filter('tags = ', expected_tag2)\
             .order('name')\
             .fetch(256)

(Purtroppo non riesco a trovare alcuna documentazione buono per il tipo di db.Category. Quindi non posso dire definitivamente questa è la strada giusta da percorrere.) Inoltre nota, che, al fine di creare un db.Category è necessario utilizzare :

new_item.tags.append(db.Category(unicode(new_tag_text)))

Altri suggerimenti

uso db.ListProperty (db.Key), invece, che memorizza un elenco di chiavi dell'impresa.

modelli:

 class Profile(db.Model):
 data_list=db.ListProperty(db.Key)

 class Data(db.Model):
 name=db.StringProperty()

vista:

   prof=Profile()
   data=Data.gql("")#The Data entities you want to fetch

   for data in data:
       prof.data_list.append(data)

/// Qui negozi data_list le chiavi di entità dati

Data.get (prof.data_list) otterrà tutte le entità di dati la cui chiave sono l'attributo data_list

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top