0

2つのforループがあり、最初のループ(varのiの場合)は投稿を取得するためのもので、もう1つはその投稿のタグ(PostモデルのManyToManyField)を取得するためのものです。

{% for i in var %}
    {% for j in i.tags.all %}
        {{ j.name }}
    {% endfor %}
{% endfor %}

なぜこれが機能しないのですか?

編集:

変数に含まれるものは次のとおりです。

var:

[<SearchResult: myapp.post (pk='1')>, <SearchResult: myapp.post (pk='2')>]

そしてここに{{i.tags}}があります:

<django.db.models.fields.related.ManyRelatedManager object at 0x1620dd0>

.allで反復しようとすると、何も返されません。

編集2:

これが問題である可能性があります-varはSearchQuerySet(django haystack)の変数です:

var = SearchQuerySet().all()
4

2 に答える 2

1

テンプレート内では、はのjようなもので、属性<SearchResult: myapp.post (pk='1')>はありません。.tags試してみてくださいfor j in i.object.tags.all.object実際のモデルインスタンスを参照します。

i.tagsDjangoは通常、テンプレートのレンダリング中に存在しない属性(ここ)にアクセスしようとしても文句を言わないことに注意してください。したがって、何もレンダリングしないということは、誤った属性の参照を意味する場合もあります。

于 2012-10-05T15:01:44.073 に答える
0

haystacksearchindexにタグフィールドを追加することで解決しました。これで、タグのリストが出力されます。よろしくお願いします!

于 2012-10-05T19:47:06.307 に答える