В моем приложении python для appengine у меня есть счетчики, которые подсчитывают количество фаворитов для фотографии и количество просмотров.
У меня есть фото и счетчик моделей.Чтобы упорядочить фотографии по популярности (количество фаворитов), я должен иметь количество фаворитов, хранящихся в моих сущностях Фото (Photo.all (). Order ('num_favs')).Так как я отслеживаю количество фаворитов в заштрихованном счетчике, мне интересно, каков наиболее эффективный способ обновить мои объекты Photo с последним количеством фаворитов из модели Counter?
Вот реферато том, как выглядят мои модели:
class Photo(db.Model):
photo = db.BlobProperty()
favs = db.IntegerProperty() #num of favs
class Counter(db.Model):
#key_name = key to a model that's to be counted - Photo in this case
name = db.StringProperty() #counted entity key
count = db.IntegerProperty() #count
type = db.StringProperty() #type of model to count, "Photo" in this example
#Very unefficient way of updating my Photo entities with the latest count from Counter:
fav_counters = Counter.all().filter('type =', 'Photo')
for fav in fav_counters:
photo_fav = db.get(fav.name) #get the photo for which the fav count is for
photo_fav.favs = fav.count
photo_fav.put()
Я был бы признателен, если бы я мог ответить на: 1) Самый эффективный способ упорядочить сущности на основе их счетчиков 2) Если логика, которой я следую, упорядочитьсущности, основанные на их счетчиках, верны - какой самый эффективный способ обновить сущности Photo с их счетчиками?
Спасибо!