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 フィールドは admin のユーザー フィールドに含まれているため、機能することを確認しました。これを使用して、ユーザー フィールド (User と UserProfile の両方) の 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探している属性QuerySetUser持たないオブジェクトです。

と を使用する必要がuser.get_profile.ratingありuser.get_profile.reliabilityます。

実際、設定をタイプに設定するget_profile()と、 に関連付けられたプロファイルが返されます。テンプレートでは、 を使用する必要はありません。 を使用すると、のプロファイルにアクセスできます。UserAUTH_PROFILE_MODULEUserProfile()user.get_profileuser

また、最初にユーザーが実際にプロファイルを持っていることを確認する必要があります。


プロファイルは Django 1.5 で廃止されるため、プロファイルを使い始めるには今が最適な時期ではないかもしれません!

于 2012-10-20T16:12:29.333 に答える