Ошибка PropertyEr при сортировке по дате (Google App Engine - Python) - PullRequest
0 голосов
/ 16 сентября 2011

См. мой предыдущий вопрос .Я обновил код в соответствии с ответом Кевина П, но теперь я не могу сортировать по новым тегам сверху.Мои комментарии ниже на query.order("date").Знаете ли вы, почему дата со знаком минус работает, но она не работает без знака минус?

моя модель:

class Owner(db.Model):
    owner = db.UserProperty()
    owner_tag = db.StringProperty()
    tag_value = db.IntegerProperty()
    url = db.StringProperty()    

Обработчик, который рисует таблицу тегов:

class UserAdminPage(webapp.RequestHandler):
    def get(self):
        order_by = self.request.get("order")      
...

#-----------tags table-----------------#
            query = Owner.all()
            query.filter("owner =", user)
            if not order_by:
                query.order("owner_tag")
#-----------when both "date" has a minus sign the table is sorted correctly
#-----------when I remove the minus signs I get `PropertyError: Invalid property name 'date'`
            elif order_by == "-date":
                query.order("-date")
            w = query.fetch(500)

            user_tag_list = []
            for item in w:
                user_tag_list.append(item.owner_tag)

#            unique_tags = sorted(f1.f2(user_tag_list))                 
            unique_tags = f1.f2(user_tag_list) 

#-----------holding table start--------#
            self.response.out.write("""
            <table border="0" cellpadding="0" cellspacing="20" >
            <tr>
            <td>""")

#-----------tags table start--------#                                   
            self.response.out.write("""<table border="1">
            <tr>
            <th colspan="3">tags<br />
            <a href="/useradminpage?order=date"><span id=small>most recent</span></a></th>
            </tr>
            """)      

            for tag in unique_tags:

                self.response.out.write("""
                    <tr>
                    <td><a href="/tag?tag=%s">%s</a></td>
                    </tr>
                    """ %
                    (tag, tag)
                    )

            self.response.out.write("""</table>""")  

...

1 Ответ

3 голосов
/ 16 сентября 2011

Сейчас вы полагаетесь на тот факт, что ключи обычно генерируются в последовательности, что не всегда так.Добавьте свойство даты в вашу модель:

date= db.DateTimeProperty(auto_now_add=True)

Также исправьте параметр GET, чтобы он был согласованным.Здесь:

<a href="/useradminpage?order=xyz"><span id=small>most recent</span></a>

и здесь:

elif order_by == "xyz":
    query.order("date")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...