我使用以下模型扩展了用户模型:
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字段有效,因为它包含在admin的用户字段中。现在我需要用它来创建一个用户字段的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 :(得分:2)
user_list
是QuerySet
个User
个对象,没有您要查找的属性。
您应该使用user.get_profile.rating
和user.get_profile.reliability
。
确实,如果您将设置User
设置为AUTH_PROFILE_MODULE
类型,get_profile()
将返回与UserProfile
相关联的配置文件。在模板中,您无需使用()
,user.get_profile
可让您访问user
的个人资料。
您还需要确保用户实际上首先拥有个人资料。
Django 1.5中的配置文件正在消失,所以现在可能不是开始使用它们的最佳时机!