Как сделать заказ по дате при использовании ReferenceProperty? - PullRequest
0 голосов
/ 25 декабря 2011

У меня есть простая структура «один ко многим», подобная этой:

class User(db.Model):
    userEmail = db.StringProperty()

class Comment(db.Model):
    user = db.ReferenceProperty(User, collection_name="comments")
    comment = db.StringProperty()
    date = db.DateTimeProperty()

Я получаю пользователя по его электронной почте:

q = User.all() # prepare User table for querying
q.filter("userEmail =", "az@example.com")  # apply filter, email lookup
results = q.fetch(1) # execute the query, apply limit 1
the_user = results[0] # the results is a list of objects, grab the first one

this_users_comments = the_user.comments # get the user's comments

Как я могу заказать комментарии пользователя по дате и ограничить его 10 комментариями?

Ответы [ 2 ]

2 голосов
/ 25 декабря 2011

Вы захотите использовать аргумент ключевого слова key встроенной функции sorted и использовать свойство date в качестве ключа:

import operator
sorted_comments = sorted(this_users_comments, key=operator.attrgetter("date"))
# The comments will probably be sorted with earlier comments at the front of the list
# If you want ten most recent, also add the following line:
# sorted_comments.reverse()
ten_comments = sorted_comments[:10]
0 голосов
/ 25 декабря 2011

Этот запрос выбирает пользователя. Вам нужно сделать еще один запрос для комментариев: this_users_comments.order ( 'дата'). предел (10) для комментариев в this_users_comments: ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...