- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Haystack 和 Solr 后端向现有 Django 站点添加搜索。我希望我的搜索能够跨多个不同的模型运行,并返回一组结果。
在迭代结果时,我想根据每个结果的模型类型来格式化每个结果 - 例如如果结果是苹果,则使用一个结果模板,但如果结果是橙色,则使用不同的模板。
到目前为止,我只是使用示例 search template 的稍微修改版本。 。在模板中,结果出现在 page.object_list 中:
{% if page.object_list %}
<ul>
{% for result in page.object_list %}
<li>
{% if (isinstance(result.object, Apple)) %}
Apple: {{ result.object.titlefield_for_apple }}
{% else %}
Orange: {{ result.object.otherfield_for_orange }}
{% endif %}
</li>
{% endfor %}
</ul>
{% else %}
<p>No results found.</p>
{% endif %}
这不起作用,显然是因为 isinstance() 在模板内不可用。那么,如何根据对象的 Model 类型来控制模板逻辑呢?我可以在模板中使用另一个函数来执行相同的操作吗?
我想我可以测试对象的各个字段(if result.object.otherfield_for_orange
)来识别它,但这看起来不太优雅。我打赌这可以通过自定义模板标签来完成,但我对此没有经验。
最佳答案
好吧,呃,在问完这个问题后,我立即深入研究了 Haystack docs ,并找到了我所需要的:
{% ifequal result.model_name 'apple' %}
Apple: {{ result.object.titlefield_for_apple }}
{% else %}
Orange: {{ result.object.otherfield_for_orange }}
{% endifequal %}
这完全有道理,因为 Haystack 当然应该将类型与结果一起传回。它实际上传递了多个版本的类型信息,以便于在模板中使用:
关于django - Haystack 搜索结果 : how to use different templates for different models in page. object_list?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1460543/
我在 Django 模板中遇到了一个奇怪的问题。它是一个显示文章列表的模板,我为每个人显示了一个我称之为关键概念的关键字列表。 奇怪的是,它显示的不是关键概念列表,而是使用该关键概念的文章列表。 下面
在我的 ProductList上课,当我尝试调用 get_context_data在另一种方法中,我得到一个错误 'ProductList' object has no attribute 'obje
我想使用 object_list generic view 。但我不知道它除了分页之外还给我带来什么好处?看来我还需要自己写模板? 这比写我自己的观点快多少?我错过了什么吗? 如果它值得使用并且我确实
我正在尝试编写一个测试,测试在基于类的 View ListView 传递的上下文中是否存在 object_list。 目前我有代码: View .py class BlogView(ListV
所以基本上我想知道如何使用 for 循环在 django 模板中索引图像。这个想法是使用您的用户添加到模型中的前三张图像创建幻灯片放映 模型.py class Product(models.Mode
将 Django 从 1.4 更新到 1.6 后,我遇到了 global name 'object_list' is not defined 问题 我有 views.py: def news(requ
我正在使用 Haystack 和 Solr 后端向现有 Django 站点添加搜索。我希望我的搜索能够跨多个不同的模型运行,并返回一组结果。 在迭代结果时,我想根据每个结果的模型类型来格式化每个结果
我正在尝试将一些 python 文件从 Django 1.3 更新到 Django 1.11。在 views.py 文件中,我有一个包含以下行的方法 return object_list(reques
我正在尝试在 ListView 上测试我的自定义 get_context_data() 方法,但我一直遇到此错误:AttributeError: 'Home' object has no attrib
我是一名优秀的程序员,十分优秀!