2012-10-20 65 views
0

我用下面的模型扩展用户模型:扩展用户模型 - 检索数据

class UserProfile(models.Model): 
    user = models.OneToOneField(User) 
    designs = models.ManyToManyField('Design', blank=True) 
    prints = models.ManyToManyField('Print', blank=True) 
    rating = models.IntegerField(null=True, blank=True) 
    reliability = models.IntegerField(null=True, blank=True) 
    av_lead_time = models.IntegerField(null=True, blank=True) 

我验证过这个OneToOne领域的作品,因为它包含在管理员用户领域。现在我需要使用它来创建一个用户字段的HTML表格(User和UserProfile)。我想下面的代码,但我没有得到任何返回:

user_list = User.objects.all() 
    return render_to_response('index.html', { 
     'user_list': user_list  
    }) 

模板:

{% for user in user_list %} 
    <tr> 
     <td>{{ user.rating }}</td> 
     <td>{{ user.reliability }}</td> 
     <td>4</td> 
     <td>2</td> 
     <td>96</td> 
     <td>£4.56</td> 
     <td class="success printButton radius">Add to Cart</td> 
    </tr> 
{% endfor %} 

谁能帮助?

+0

[如何访问Django模板中的用户配置文件?](http://stackoverflow.com/questions/422140/how-to-access-the-user-profile-in-a-django-模板) – danihp

+0

@danihp不完全:babbaggeii不知道他必须访问用户配置文件。 –

+0

我刚刚尝试使用{{request.user.username}}并没有返回任何内容。我是否需要包含其他内容? – babbaggeii

回答

2

user_listQuerySetUser对象,它们没有您正在查找的属性。您应该使用user.get_profile.ratinguser.get_profile.reliability

事实上,get_profile()将返回关联到User配置文件提供您设置的设置AUTH_PROFILE_MODULEUserProfile类型。在模板中,您不需要使用(),user.get_profile可以访问user的个人资料。

您还需要确保用户实际上首先拥有一个配置文件。


个人档案将在Django 1.5中消失,所以现在可能不是开始使用它们的最佳时间!

+0

我必须包含其他内容吗?我刚刚尝试{{user.get_profile.rating}}和{{user.username}},它们都返回空白。 – babbaggeii

+0

@babbaggeii你确定'user_list'中有任何东西吗?你能用{%debug%}来调查吗? –