2016-03-30 80 views
0

在遵循Extending the User Model的文檔後,我無法檢索任何配置文件字段。如何訪問django中的擴展配置文件(1.9.4)

用戶/ models.py

from django.db import models 
from django.contrib.auth.models import User 

class Profile(models.Model): 
    # Fields 
    user = models.OneToOneField(User, on_delete-models.CASCADE) 

    is_good = models.BooleanField(default=False) 

應用程序/ views.py

from django.shortcuts import render 
from django.contrib.auth.decorators import login_required 

@login_required 
def home(request): 
    return render(request, 'chooser.html') 

應用/模板/ chooser.html

{% if user.is_authenticated %} 
{% if user.is_good %} 
<h1>Good Boy</h1> 
{% endif %} 
{% endif %} 

所有帳戶它應該工作,但沒有。

啓用調試後,我看到有一個SQL請求: SELECT * FROM auth_user WHERE id=8

的Django調試工具欄(委託部)說

u'_auth_user_backend' 
u'django_auth_ldap.backend.LDAPBackend' 
u'_auth_user_hash' 
u'a72bee1aebbd30db244468ff794d7ef907c7d865' 
u'_auth_user_id' 
u'8' 

帳戶在LDAP存在(並從已autosynced到django的本地數據庫)。該配置文件已被手動編輯以包含is_good布爾值。管理員內聯按預期工作。

我在做什麼錯在這裏。

回答

1

您必須引用的用戶的配置文件,同時檢查用戶是否is_good

{% if user.profile.is_good %} 
<h1>Good Boy</h1> 
{% endif %} 
相關問題