gpt4 book ai didi

django - 将额外的上下文传递给 Django Haystack 模板

转载 作者:行者123 更新时间:2023-12-02 05:43:37 24 4
gpt4 key购买 nike

使用 Django Haystack 设置搜索页面涉及放入他们的 URLconf 片段 url(r'^search/', include('haystack.urls')) .然而,这意味着(至少从我对 Django/MVC 的极其基本的理解来看),没有简单的方法来传递要呈现到页面上的额外上下文(即额外的字典键/值)。

特别是,我想自定义一个搜索字段来反射(reflect)从 GET 请求传递到页面的变量:

<form method="get" action=".">
<input type="text" name="q" value="">
<!-- result html here -->
</form>

说参数?q=twitter作为 GET 请求的一部分附加到 URL;我想制作 value选择器等于 twitter .如果我可以控制 View ,我可能会这样做:

if request.method == 'GET':
q = request.GET['q']
return render(request, 'template.html', {'q': q})

然后使用q作为 value 的值HTML 中的选择器 <input> .

除了编辑 Haystack 源代码之外,还有什么方法可以简单地完成此操作吗?

最佳答案

您可以子类化 Haystack View 以添加到上下文中:

在您的搜索应用程序中创建一个 views.py 文件(如果您没有)。然后确保导入 Haystack View 。然后你可以像这样创建一个子类:

import haystack.views

class SearchView(haystack.views.SearchView):
"""
We subclass the base haystack view in order to add context.
"""

def extra_context(self):
return {
'yourValue': yourValue,
}

不要忘记在您的搜索应用中更改 urls.py 中 View 的路径:

from yourSite.apps.search.views import SearchView

关于django - 将额外的上下文传递给 Django Haystack 模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11421760/

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