gpt4 book ai didi

python - Django 模板 : How to determine which object/model a queryset is composed of?

转载 作者:太空宇宙 更新时间:2023-11-04 10:30:19 25 4
gpt4 key购买 nike

我为我的 Django 应用程序编写了一个搜索功能,它根据在搜索框中输入的搜索字符串执行多种不同的过滤。我将这些不同查询过滤的结果保存在一个名为“results”的变量中(看起来很合适),但我无法根据查询集所基于的对象类型让模板正确呈现变量。结果变量可以采用“已过滤”object1 的查询集形式或 0 个结果(如果没有 object1 匹配该搜索),也可以采用“已过滤”object2 或 0 个结果的查询集形式(如果没有 object2匹配该搜索)。稍后这可能会变成可以理解的更多不同的对象/模型,所以我想知道如何检查查询集由什么类型的对象组成。

任何帮助将不胜感激。

最佳答案

给定一个 Django 查询集,您可以使用命名良好的 model 属性检索其模型,该属性提供一个 Model 对象。

queryset = SomeModel.objects
print queryset.model  # prints 'path.to.your.app.models.SomeModel'

您可能不想检查完整路径,因此您可以使用 __name__

print queryset.model.__name__  # prints 'SomeModel'

但是由于您无法访问模板中的下划线属性,因此您必须在 View 中添加此信息。

更新:要检查模板中的模型名称是什么,您可以将其添加到查询集对象上:

queryset.model_name = queryset.model.__name__   

然后在你的模板中:

{% if queryset.model_name = 'SomeModel' %}
... do something
{% elif queryset.model_name = 'SomeOtherModel' %}
....
{% endif %}

关于python - Django 模板 : How to determine which object/model a queryset is composed of?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27227079/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com