在Django模板中获取模型名称

2024-09-24 02:22:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试搜索Django中的许多数据模型,以访问我的站点。 现在我在视图中有这样的代码

class Search(ListView):
    template_name="search.html"
    context_object_name="result_serch_all"
    paginate_by = 10

    def get_queryset(self):
        news = Articles.objects.filter(title__icontains=self.request.GET.get("q"))
        docs = Doc.objects.filter(name_doc__icontains=self.request.GET.get("q"))
        query_sets = list(chain(news, docs))
        return query_sets

    def get_context_data(self, *args, **kwargs):
        paginator = Paginator(self.get_queryset(), 5)
        context = super().get_context_data(*args, **kwargs)
        context["q"] =f'q={self.request.GET.get("q")}&'
        print(context['result_serch_all'])
        return context

在模板中,我输出如下

   {%for el in result_serch_all%}
       <div> {{el}} </div>
   {% endfor %}

模板中的输出如何划分为块?因此在所有找到的文章前面都有一个铭文Found in the news section。在“文档”部分找到文档之前

我找到了这个选择。在我的模型中,我添加了

def get_my_model_name(self):
    return self._meta.model_name

在模板中,我检查

{% if el.get_my_model_name == 'articles' %}

也许在Django有一些标准的方法


Tags: djangonameself模板getmodelreturnrequest