2012-04-20 63 views
0

我有這個在我的模板:Django的:如何使用Django模板時定位頁面和鏈接

<div id="comment-{{ post_comment.id }}"> 
<a title="Comment was useful" href="/useful-comment/{{ blog_post.id }}/{{ post_comment.id }}/"> 

當這條鏈路,方法useful_comment(blog_post_id,post_comment_id)用戶點擊被調用,並在當它返回時,它再次加載相同的模板。然後,我要向下滾動頁面,以#COMMENT - {{post_comment.id}},但我怎麼做,如果我打開我的模板像這樣:

arguments = dict(user = request.user, blog_post = blog_post) 

t = loader.get_template('blog-post-template.html') 
c = RequestContext(request, args) 
return HttpResponse(t.render(c)) 

這與Django: How do I position a page when using Django templates,但在他們正在使用表單的問題,只能向下滾動到頁面的靜態部分。

+1

爲什麼你不使用[{%url ...%}](https://docs.djangoproject.com/zh/dev/ref/templates/builtins/?from=olddocs#url)內置於你的模板? – 2012-04-20 14:32:32

+0

感謝您的建議:)我只是開始使用Django。 – Felipe 2012-04-20 14:48:57

+0

沒問題!不要忘記看看[教程](https://docs.djangoproject.com/en/dev/intro/tutorial01/) – 2012-04-20 14:50:10

回答

0

您應該將#anchor添加到您的鏈接的href。在你的情況下,會有不同的錨(例如,<a name="comment_123"></a>),因此請確保鏈接點正確錨。

這與Django無關,只是老的好HTML。

+0

當HttpResponse對象被返回時,錨點會丟失,因此會出現問題。假設我正在做'return HttpResponseRedirect('/ blog-post /%s#comment-%s'%(blog_post.id,post_comment.id))'你的回答是正確的。 – Felipe 2012-04-23 11:37:19

+0

似乎我有你的想法 - 你的'有用的評論'做的事情,好的。然後它不應該顯示任何內容,但返回一個重定向,你可以完全按照你的說法。您應該始終將視圖分開:顯示數據和以某種方式更新數據的視圖。另外,最好的做法是對POST請求進行更新(在您的情況下,它將是帶有按鈕而不是超鏈接的POSTable表單),否則您很容易受到XSS攻擊。 – ilvar 2012-04-24 03:50:12

+0

我同意你的意見。當我昨天閱讀了更多的教程時,我意識到我沒有按照它應該完成的方式進行。感謝您的建議。 – Felipe 2012-04-24 11:07:35