2015-08-28 100 views
0

我正在關注一些基本的django博客教程。我堅持的部分是如何在我的網址中設置變量。如何設置我的網址與帖子/ 1,帖子/ 2等?

我想我的網址看起來像:

posts/1 
posts/2 
posts/3 

目前,當我訪問我的index.html我看到博客文章(只是標題)的列表,當我將光標懸停在各個環節它不顯示帖子/ 1,帖子/ 2等

問題是,當我點擊這些鏈接時,它基本上只是刷新頁面,並沒有顯示詳細的視圖。

我urls.py目前看起來是這樣的:

url(r'^posts/', index), 
url(r'^posts/(?P<post_id>[0-9]+)/$', detailedview), 

我不知道到底是什麼/ $」,不和我假設是這樣的(P [0-9] +?)問題,因爲detailview永遠不會被調用。

這個方法在我的views.py裏面,但是再次,它永遠不會被調用。

def detailedview(request, post_id): 
    targetpost = Post.objects.get(id="post_id") 
    context = {'targetpost': targetpost} 
    return render(request, 'posts/detailedview.html', context) 
+1

你真的需要通過[教程](https://docs.djangoproject.com/en/1.8/intro/tutorial03/)。 –

+0

我是。本練習直接從教程中獲取。 – stephan

回答

3

您對第二個URL問題:(更多信息在https://docs.python.org/2/library/re.html

(?P<post_id>[0-9]+)是一個正則表達式,這意味着「設置POST_ID參數任意數量的一個或多個數字的值

解決您的問題的方法是一個$添加到第一個模式的結尾,所以它看起來是這樣的:

url(r'^posts/$', index), 

這將使其僅匹配網址/posts/

也有你的觀點了一個問題:線

targetpost = Post.objects.get(id="post_id") 

應該是:

targetpost = Post.objects.get(id=post_id) 

這將使Django的查找Post與變量post_id指定的id,而比Postid等於字符串"post_id"

+0

謝謝,我從來不知道什麼是$表示的,很好知道。 – stephan

+0

如果您想了解有關正則表達式的更多信息,請轉至python文檔中的[Regular Expression Syntax](https://docs.python.org/2/library/re.html#regular-expression-syntax)鏈接頁面,它向您展示了可以添加到像URLconf中那樣的正則表達式的所有內容。 –