更改表中标记的显示顺序(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