在搜索中直接 URL 上传 - Wagtail
Get Direct URL for uploads in search - Wagtail
我已自定义我的搜索以查看图像和文档作为该搜索的一部分。这工作正常。但是我不确定如何将 URL 返回到上传的 images/documents 。理想情况下,浏览器中会有 link 到 download/display。我同意 ../media/images/xxx url。但我似乎无法弄清楚如何在模板中获取该数据。想法?搜索就是这样执行的。
# Search
if search_query:
results = []
page_results = Page.objects.live().search(search_query)
if page_results:
results.append({'page': page_results})
doc_results = Document.objects.all().search(search_query)
if doc_results:
results.append({'docs': doc_results})
img_results = Image.objects.all().search(search_query)
if img_results:
results.append({'image': img_results})
search_results = list(chain(page_results, doc_results, img_results))
query = Query.get(search_query)
# Record hit
query.add_hit()
else:
search_results = Page.objects.none()
html 看起来像这样
{% if search_results %}
{{ count }} results found.
{% for result in search_results %}
{% for k, v in result.items %}
{% if k == 'page' %}
{% for item in v %}
<p>
<h4><a href="{% pageurl item %}">{{ item }}</a></h4>
Type: Article<br>
Author: {{ item.specific.owner.get_full_name }}<br>
Publish Date: {{ item.specific.last_published_at}}
</p>
{% endfor %}
{% elif k == 'docs' %}
{% for item in v %}
<p>
<h4><a href="">{{ item.title }}</a></h4>
Type: Document<br>
Publish Date: {{ item.created_at }}
</p>
{% endfor %}
{% elif k == 'image' %}
{% for item in v %}
<p>
<h4><a href="">{{ item.title }}</a></h4>
Type: Image<br>
Publish Date: {{ item.created_at }}
</p>
{% endfor %}
{% endif%}
{% endfor %}
{% endfor %}
{% if search_results.has_previous %}
<a href="{% url 'search' %}?query={{ search_query|urlencode }}&page={{ search_results.previous_page_number }}">Previous</a>
{% endif %}
{% if search_results.has_next %}
<a href="{% url 'search' %}?query={{ search_query|urlencode }}&page={{ search_results.next_page_number }}">Next</a>
{% endif %}
{% elif search_query %}
No results found
{% endif %}
Django 为文件和图像提供 url
属性,wagtail 也有。
{{ item.url }}
Wagtail 对重定向到文件有很好的支持,并且还集成了 django-sendfile
。这两种方式都可以下载图片
https://docs.wagtail.io/en/stable/advanced_topics/images/image_serve_view.html
从 wagtail.images.views.serve 导入 ServeView
网址模式 = [
...
re_path(r'^images/([^/]*)/(\d*)/([^/]*)/[^/]*$', ServeView.as_view(action='redirect'), name='wagtailimages_serve'),
]
** 在下方编辑
生成“as foo”图像以访问各个属性 - 访问底层图像实例
{% image item original as item_img %}
{{ item_img.url }}
我已自定义我的搜索以查看图像和文档作为该搜索的一部分。这工作正常。但是我不确定如何将 URL 返回到上传的 images/documents 。理想情况下,浏览器中会有 link 到 download/display。我同意 ../media/images/xxx url。但我似乎无法弄清楚如何在模板中获取该数据。想法?搜索就是这样执行的。
# Search
if search_query:
results = []
page_results = Page.objects.live().search(search_query)
if page_results:
results.append({'page': page_results})
doc_results = Document.objects.all().search(search_query)
if doc_results:
results.append({'docs': doc_results})
img_results = Image.objects.all().search(search_query)
if img_results:
results.append({'image': img_results})
search_results = list(chain(page_results, doc_results, img_results))
query = Query.get(search_query)
# Record hit
query.add_hit()
else:
search_results = Page.objects.none()
html 看起来像这样
{% if search_results %}
{{ count }} results found.
{% for result in search_results %}
{% for k, v in result.items %}
{% if k == 'page' %}
{% for item in v %}
<p>
<h4><a href="{% pageurl item %}">{{ item }}</a></h4>
Type: Article<br>
Author: {{ item.specific.owner.get_full_name }}<br>
Publish Date: {{ item.specific.last_published_at}}
</p>
{% endfor %}
{% elif k == 'docs' %}
{% for item in v %}
<p>
<h4><a href="">{{ item.title }}</a></h4>
Type: Document<br>
Publish Date: {{ item.created_at }}
</p>
{% endfor %}
{% elif k == 'image' %}
{% for item in v %}
<p>
<h4><a href="">{{ item.title }}</a></h4>
Type: Image<br>
Publish Date: {{ item.created_at }}
</p>
{% endfor %}
{% endif%}
{% endfor %}
{% endfor %}
{% if search_results.has_previous %}
<a href="{% url 'search' %}?query={{ search_query|urlencode }}&page={{ search_results.previous_page_number }}">Previous</a>
{% endif %}
{% if search_results.has_next %}
<a href="{% url 'search' %}?query={{ search_query|urlencode }}&page={{ search_results.next_page_number }}">Next</a>
{% endif %}
{% elif search_query %}
No results found
{% endif %}
Django 为文件和图像提供 url
属性,wagtail 也有。
{{ item.url }}
Wagtail 对重定向到文件有很好的支持,并且还集成了 django-sendfile
。这两种方式都可以下载图片
https://docs.wagtail.io/en/stable/advanced_topics/images/image_serve_view.html
从 wagtail.images.views.serve 导入 ServeView
网址模式 = [ ...
re_path(r'^images/([^/]*)/(\d*)/([^/]*)/[^/]*$', ServeView.as_view(action='redirect'), name='wagtailimages_serve'),
]
** 在下方编辑 生成“as foo”图像以访问各个属性 - 访问底层图像实例
{% image item original as item_img %}
{{ item_img.url }}