在关注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
布尔值。管理内联按预期工作。
我在这里做错了什么。
答案 0 :(得分:1)
您必须在检查用户is_good
{% if user.profile.is_good %}
<h1>Good Boy</h1>
{% endif %}