Я пишу приложение Python на Google App Engine, и мне нужен запрос ndb, но проблема в том, что запрос может относиться к разным типам классов, поэтому я ищу другой метод, кроме clss.Query()
. Мне нужно, чтобы clss
была переменной. Могу ли я использовать с этим фильтр?
Как использовать запрос NDB, не зная имени класса
Ответы (1)
На самом деле есть способ сделать это, упомянутый в документация:
from google.appengine.ext import ndb
ndb.Query(kind=clss)
Вы также можете использовать фильтры, передав фильтр в качестве параметра в запросе:
ndb.Query(kind=clss, filters=...)
или применив filter()
к запросу, как обычно:
ndb.Query(kind=clss).filter()
person
Y2H
schedule
29.11.2015
Отлично, за исключением того, что, если
clss
является переменной, как указано в OP, вы обязательно должны потерять используемые кавычки - kind=clss
правильно, не kind="clss"
там, где кавычки превратит RHS в постоянную буквальную строку! Пожалуйста, исправьте это большое упс (в трех местах) в своем во всем остальном превосходном ответе ...
- person Alex Martelli; 30.11.2015
@Alex Martelli, спасибо за замечание, но я предполагал, что спрашивающий поймет это. Я постараюсь прояснить это.
- person Y2H; 30.11.2015