2013-07-11 4 views
0

По какой-то причине я не могу заставить пользовательские профили пользователей работать. Ниже я попытался:Характеристики профиля Django, не показанные в шаблоне

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 }} 

или с помощью функции лямбда (см #comment в models.py)

я упускаю что-то? Спасибо за любой намек!

Ах да, и я сделал

AUTH_PROFILE_MODULE = 'mymodelname.UserProfile' 
+0

Какая версия django вы используете? – stalk

+0

Версия: 1.4.1-2 – szeta

+1

Вы включили django.core.context_processors.request в свои TEMPLATE_CONTEXT_PROCESSORS? –

ответ

0

Вы должны использовать RequestContext вместо Context:

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

Кроме того, вы должны иметь django.core.context_processors.request в TEMPLATE_CONTEXT_PROCESSORS.

+0

Это был недостающий бит! (RequestContext). большое спасибо! – szeta

+0

рад, что у вас это работает! –