2016-12-01 53 views
3

我正在建立一個機構的新框架。我目前正在與Django合作創建框架。當我創建「新用戶」表單時,我注意到頁面的某些部分呈現時沒有上下文。這是爲什麼?Django呈現時沒有上下文。爲什麼?

查找:

view.py

from django.contrib.auth.models import User 

def index(request): 
    context = { 
       'user': request.user, 
       'userDB': User.objects.all() 
       } 
    return render(request, 'user/home.html', context) 

def new_user(request): 
    return render(request, 'users/new.html', {}) 

用戶/ home.html做爲

{% user.username %} 

用戶/ new.html

{% user.username %} 

urls.py

from django.conf.urls import url 
from . import views 

urlpatterns = [ 
    url(r'^$', views.index),          # User homepage 
    url(r'^new/', views.new_user),         # Add user 
    url(r'^(?P<user>[0-9]+)/edit', views.edit_user),   # Edit user 
] 

正如你所看到的,有沒有可用的上下文來渲染new_user,但它呈現它。恐怕這會在將來帶來一些問題。雖然,它的預期效果,但我不明白它...

+0

顯示您的urls.py –

+0

網址更新! –

+0

你有'edit_user'視圖嗎?如果是的話,發帖 –

回答

1

你需要知道的django.contrib.auth.models.Useruser實例總是傳遞給由Django的背景下爲您服務。這與request.user一樣。即使User未註冊或登錄,AnonymousUser的實例也會通過。

+0

所以,如果我把'{%user.username%}'在模板中,它將呈現沒有任何上下文的'User'實例? –

+0

@MarcoAurélio是的。此外,最好的做法是檢查天氣用戶是否使用'user.is_authenticated'進行身份驗證,以便您可以決定是否顯示用戶名的天氣 – pythad

+0

我不知道......是否在文檔中? –

相關問題