2016-03-30 47 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 %} 
相关问题