2017-07-19 27 views
0

我嘗試顯示基於PK的用戶配置文件。所以,我創建了一個名稱爲「Profile」的菜單。用戶單擊菜單後,用戶可以看到該配置文件。Django,使用庫檢索用戶配置文件沒有調用模型的用戶

我嘗試這樣做:

def view_profile(request, pk): 
    profile = get_object_or_404(User, pk=pk) 
    return render(request, 'girl/base.html', {'profile':profile}) 

而且也是這樣:

def view_profile(request, pk): 
    profile = User.objects.filter(User, pk=pk) 
    return render(request, 'base.html', {'profile':profile}) 

在base.html文件:

{% if user.is_authenticated %} 
    <a href='{% url "profile" pk=profile.pk%}' class="prof"><span class="pro">Profile</span></a> 
{% endif %} 

而且在模板中,profile.html:

{% extends 'base.html' %} 

{% block content %} 
    {% if user.is_authenticated %} 
     <h2><a href="{% url 'profile' pk=profile.pk %}">{{ profile.username }}</a></h2> 
    {% endif %} 
{% endblock %} 

urls.py

url(r'^cat/(?P<pk>\d+)/profile/$', views.view_profile, name='profile') 

的輪廓一直沒有露面,我得到了以下錯誤:

Reverse for 'profile' with keyword arguments '{'pk': ''}' not found. 1 pattern(s) tried: ['cat/(?P<pk>\\d+)/profile/$'] 
+0

錯誤是一樣的。 –

+0

''User.objects.filter(pk = pk)在瀏覽器中,並確保你有pk,url的格式是正確的。 –

+0

@Scarlettstone檢查您的profile.html的源代碼''User.objects.filter(pk = pk)' –

回答

0

你的問題實在是很難理解,所以我正在做一個猜測。

只有在您的個人資料視圖本身的情況下才有一種叫做「個人資料」的功能。但是您的基本模板用於所有視圖,而所有其他視圖不包含有該變量可用;所以它不能使用該值創建配置文件鏈接。

但是我不知道爲什麼你認爲你需要這個變量。你想要的不是配置文件,而是當前用戶;這總是在模板中可用,通過名爲不出所料的變量user - 正如您所知,因爲您已經在使用它來檢查身份驗證狀態。您應該在您的基本模板中使用它:

{% if user.is_authenticated %} 
    <a href='{% url "profile" pk=user.pk%}' class="prof"><span class="pro">Profile</span></a> 
{% endif %} 

還要注意,您的第二個配置文件視圖本身是錯誤的。

+0

我的意思是,我想顯示用戶的個人資料。我像你一樣嘗試,但錯誤仍然相同。 –

+0

顯示完整的錯誤消息。 –

相關問題