0

出于某种原因,我无法让自定义用户配置文件正常工作。以下是我尝试过的:

模型.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])

视图.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))

显示程序.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'
4

1 回答 1

0

您应该使用RequestContext代替Context

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

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

于 2013-07-11T09:22:44.563 回答