0

私はdjangoの基本的なアプリを使用するレガシーコードに取り組んでいます。基本的なブログアプリにはタグ結果ページがあります。

このメソッドを拡張して、2つのモデルからタグ付きコンテンツを返す方法を知りたいです。ポストモデルと他のモデル。

def tag_detail(request, slug, template_name='blog/tag_detail.html', **kwargs):
    tag = get_object_or_404(Tag, name__iexact=slug)

    return list_detail.object_list(
        request,
        queryset=Post.objects.filter(tags__name__iexact=slug, status=2),
        extra_context={'tag': tag},
        template_name=template_name,
        **kwargs
    )

編集

これが私がやったことです

quertsetA = A.objects.filter(tags__name__iexact=slug, status=2)
querysetB = B.objects.filter(tags__name__iexact=slug, status=2)

result_list = list(chain(quertsetA, querysetB))

これはPythonシェルで機能しますが、quertsetAの値のみがテンプレートに渡されます。

これがビューの関連部分です

return list_detail.object_list(
    request,
    queryset=result_list,
    template_name=template_name,
    **kwargs
)

そしてテンプレート

{% for post in object_list %}
    {{ post }}
{% endfor %}
4

1 に答える 1

1

クエリセットをリストに変換すると、それらを連結することができます

quertsetA = [p for p in Post.objects.filter(tags_name_iexact=slug, status=2)]
querysetB = [o for o in Other.objects.filter(tags_name_iexact=slug...)]
queryset = querysetA+querysetB
于 2012-12-09T20:16:08.233 に答える