2011-09-15 9 views
0

my previous questionを参照してください。私はKevin Pの回答ごとにコードを更新しましたが、今は最新のタグで並べ替えることができません。私のコメントはquery.order("date")です。マイナス記号付きの日付は機能しますが、マイナス記号なしでは機能しないのは分かりますか?日付によるソート中のPropertyError(Google App Engine - Python)

私のモデルは次のとおりです。

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>""") 

... 

答えて

3

今あなたがキーは通常、必ずしもそうではありませんこれは、順番に生成するという事実に依存しています。モデルに日付プロパティを追加してください:

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") 
+0

グレート!ありがとう。すべての作品は今。 – Zeynel

+0

喜んで:) –

関連する問題