2

ManyToManyFieldにリンクされたモデルにいくつかのクラスがあります。

class UserProfile(models.Model):
    contacts = models.ManyToManyField(Contact)

class Contact(models.Model):
    first_name = models.CharField(max_length=50)

私が通過しているビューで:

contacts_list = request.user_profile.contacts

これにより、テンプレートが更新されるたびに変化する奇妙な数字の文字列が生成されます。

{% for c in contacts_list %}
    {{ c }}
{% endfor %}

これは何も生成しません:

{% for c in contacts_list %}
    {{ c.first_name }}
{% endfor %}

Contactクラスには、__unicode__(self)を返すように定義されているのに、オブジェクトがこの値を返さないfirst_nameのはなぜですか?また、フィールド値ManyToManyFieldを正しく表示する方法もわかりません。first_name提案や助けてくれてありがとう!

4

1 に答える 1

4

ビューに追加allしてみてください:

contacts_list = request.user_profile.contacts.all()

またはテンプレートに:

{% for c in contacts_list.all %}
    {{ c.first_name }}
{% endfor %}
于 2012-06-20T10:24:51.760 に答える