Django配置文件属性未在模板中显示

时间:2013-07-11 08:17:26

标签: django django-profiles

出于某种原因,我无法使用自定义用户配置文件。 以下是我的尝试:

models.py:

class UserProfile(models.Model):
    #user = models.ForeignKey(User, unique=True)
    user = models.OneToOneField(User)
    program = models.ForeignKey("Program")
    book_date = models.DateField('book date')
    def __unicode__(self):
            return "%s" % (self.user)
#User.profile = property(lambda u: UserProfile.objects.get_or_create(user=u)[0])

views.py:

def showProgram(request,program_id):
    program = Program.objects.get(id=program_id)
    t = loader.get_template('controltool2/showProgram.html')
    c = Context({'program':program,})
    return HttpResponse(t.render(c))

showProgram.html:

<h1>Your Program: {{ request.user.get_profile.program }}</h1>

我也试过

{{ user.get_profile.program }}

{{ request.user.get_profile().program }}

或使用lambda函数(参见models.py中的#comment)

我错过了什么吗? 谢谢你的提示!

啊是的,我做了

AUTH_PROFILE_MODULE = 'mymodelname.UserProfile'

1 个答案:

答案 0 :(得分:0)

您应该使用RequestContext代替Context

from django.template import RequestContext
###
###
c = RequestContext(request, {'program': program})

此外,您必须在TEMPLATE_CONTEXT_PROCESSORS中拥有django.core.context_processors.request