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

任何人都可以帮忙吗?

4

1 回答 1

2

user_list是一个不具有您正在寻找的属性QuerySet的对象。User

您应该使用user.get_profile.ratingand user.get_profile.reliability

实际上,如果您将设置设置为您的类型,get_profile()则会返回与关联的配置文件。在模板中,您无需使用,即可访问的个人资料。UserAUTH_PROFILE_MODULEUserProfile()user.get_profileuser

您还需要首先确保用户实际上拥有个人资料。


配置文件在 Django 1.5 中消失了,所以现在可能不是开始使用它们的最佳时机!

于 2012-10-20T16:12:29.333 回答