如何访问django中的扩展配置文件(1.9.4)

时间:2016-03-30 12:53:10

标签: python django

在关注Extending the User Model的文档后,我无法检索到任何个人资料字段。

users / 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)
app / 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')
app / templates / 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中(并已自动从该帐户到django的本地数据库)。已手动编辑配置文件以包含is_good布尔值。管理内联按预期工作。

我在这里做错了什么。

1 个答案:

答案 0 :(得分:1)

您必须在检查用户is_good

时是否引用用户的个人资料
{% if user.profile.is_good %}
<h1>Good Boy</h1>
{% endif %}