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