0
我在UserAdminPage
中有一个表格,其中标签按字母顺序列出(代码如下)。更改表格中标签的显示顺序(Google App Engine-Python)
我想添加一个链接,将更改顺序以日期。我知道我会将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">""")
更新的代码AS PER KEVIN普的回答:
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>""")
...
感谢您的回答。我更新了代码并添加了问题。我不明白这应该如何工作,所以我认为我没有把链接放在应该的位置。当我点击它时,标签表没有被绘制。换句话说,我仍然不明白如何在日期排序的页面中包含“for”循环。再次感谢。 – Zeynel
'/ tag'是你网页的网址(即UserAdminPage)吗?这里的目标是通过添加参数重新发起对页面的请求。 for循环将按照他们排序的顺序迭代你的结果。 –
好的,我将它更改为/ useradminpage,现在它的工作原理。但它只适用于如果两个“日期”参数都写入这样的减号:'elif order_by ==“-date”:query.order(“ - date”)'否则我得到一个'PropertyError:无效的属性名称' date'。你知道为什么吗?将最新的标签放在最上面会很好。谢谢 – Zeynel