更改表中标记的显示顺序(Google App Engine Python)

更改表中标记的显示顺序(Google App Engine Python),python,google-app-engine,Python,Google App Engine,我在UserAdminPage中有一个表,其中标签按字母顺序列出(代码如下) 我想添加一个链接,将订单更改为按日期。我知道我将把query.order(owner_tag”)更改为query.order(“-date”),但是我需要创建一个新的处理程序吗 我不明白链接应该是什么,问号在哪里 谢谢 class UserAdminPage(webapp.RequestHandler): def get(self): ... #-----------tags table----------

我在
UserAdminPage
中有一个表,其中标签按字母顺序列出(代码如下)

我想添加一个链接,将订单更改为按日期。我知道我将把
query.order(owner_tag”)
更改为
query.order(“-date”)
,但是我需要创建一个新的处理程序吗

我不明白链接应该是什么,问号在哪里

谢谢

class UserAdminPage(webapp.RequestHandler):
    def get(self):

...

#-----------tags table-----------------#
            query = Owner.all()
            query.filter("owner =", user)
            query.order("owner_tag")
            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))                 

#-----------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 />
            #the link that will sort by most recent:
            #<a href="?????">order tags by most recent</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>""")  

            #holding table first column end
            self.response.out.write("""</td>""")
            #holding table second column start
            self.response.out.write("""<td style="vertical-align:top">""")
class UserAdminPage(webapp.RequestHandler):
def get(自我):
...
#-----------标签表-----------------#
query=Owner.all()
query.filter(“owner=,user”)
查询订单(“所有者标签”)
w=query.fetch(500)
用户标签列表=[]
对于w中的项目:
用户标记列表。追加(项。所有者标记)
唯一标记=已排序(f1.f2(用户标记列表))
#-----------等待台开始--------#
self.response.out.write(“”)
""")
#-----------标签表开始-----#
self.response.out.write(“”)
标签
#将按最近一次排序的链接: # """) 对于唯一_标记中的标记: self.response.out.write(“”) """ % (标签,标签) ) self.response.out.write(“”) #保持台第一列末端 self.response.out.write(“”) #保持表第二列开始 self.response.out.write(“”)
根据KEVIN p的回答更新了代码:

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")
            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 = f1.f2(user_tag_list) 

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

#-----------tags table start--------#                                 
#           I put the link here but when I click on it, no table is drawn
#           because the `for` block below draws the tag table
#           so I don't understand how I can draw the table with `order=date`

            self.response.out.write("""<table border="1">
            <tr>
            <th colspan="3">tags<br />
            <a href="/tag?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>""")  

...
class UserAdminPage(webapp.RequestHandler):
def get(自我):
order\u by=self.request.get(“订单”)
...
#-----------标签表-----------------#
query=Owner.all()
query.filter(“owner=,user”)
如果不是订购人:
查询订单(“所有者标签”)
elif order_by==“日期”:
查询订单(“-日期”)
w=query.fetch(500)
用户标签列表=[]
对于w中的项目:
用户标记列表。追加(项。所有者标记)
唯一标签=f1.f2(用户标签列表)
#-----------等待台开始--------#
self.response.out.write(“”)
""")
#-----------标签表开始-----#
#我把链接放在这里,但当我点击它时,没有表格被画出来
#因为下面的'for'块绘制标记表
#所以我不明白如何用'order=date'来绘制表格`
self.response.out.write(“”)
标签
""") 对于唯一_标记中的标记: self.response.out.write(“”) """ % (标签,标签) ) self.response.out.write(“”) ...
有许多方法可以优化您的方法,但是为了回答您的特定问题,您可以在构建查询时向链接添加GET参数,然后检查该参数,而不是重复处理程序:

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

        query = Owner.all() 
        query.filter("owner =", user)
        if not order_by:
            query.order("owner_tag")
        elif order_by == 'date':
            query.order("-date")

        ...
        <a href="your_page_url?order=date">order tags by most recent</a>
class UserAdminPage(webapp.RequestHandler):
def get(自我):
order\u by=self.request.get('order'))
query=Owner.all()
query.filter(“owner=,user”)
如果不是订购人:
查询订单(“所有者标签”)
elif order_by==“日期”:
查询订单(“-日期”)
...

有许多方法可以优化您的方法,但是为了回答您的特定问题,您可以在构建查询时向链接添加GET参数,然后检查该参数,而不是重复处理程序:

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

        query = Owner.all() 
        query.filter("owner =", user)
        if not order_by:
            query.order("owner_tag")
        elif order_by == 'date':
            query.order("-date")

        ...
        <a href="your_page_url?order=date">order tags by most recent</a>
class UserAdminPage(webapp.RequestHandler):
def get(自我):
order\u by=self.request.get('order'))
query=Owner.all()
query.filter(“owner=,user”)
如果不是订购人:
查询订单(“所有者标签”)
elif order_by==“日期”:
查询订单(“-日期”)
...

谢谢你的回答。我更新了代码并添加到了问题中。我不明白这是怎么回事,所以我想我没有把链接放在它应该放的地方。当我点击它时,标记表没有被绘制。换句话说,我仍然不明白如何在该页面中包含绘制表的
for
循环按日期排序。再次感谢。是否“/tag”是包含表的页面的url(即UserAdminPage)?此处的目标是使用添加的参数重新启动对页面的请求。for循环将以排序的任何顺序对结果进行迭代。好的,我将其url更改为/UserAdminPage,现在它可以工作。但只有当两者都已排序时,它才能工作。”日期”参数是用减号写的,如:
elif order\u by==“-date”:query.order(“-date”)
否则我会得到一个
属性错误:无效的属性名称'date
。你知道为什么吗?最好在顶部有最新的标记。感谢我查询的所有者表没有日期列,你认为这可能是问题吗?你应该可以对get参数使用任何你想要的;你可以使用'xyz',它会dn不要紧,只要这是您评估的对象-我只使用了“日期”作为可读性。就排序而言,是的,属性(列)必须包含在实体(表)中谢谢你的回答。我更新了代码并添加到了问题中。我不明白这是怎么回事,所以我想我没有把链接放在它应该放的地方。当我点击它时,标签表没有被画出来。换句话说,我仍然不明白我如何才能包含
fo