“search”用takes\u context=True修饰,因此它的第一个参数必须是“context”。Django 2.1.5款

2024-06-16 10:38:10 发布

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

我用inclusion tag进行搜索,但这会导致一个错误“'search'用takes\context=True修饰,因此它必须有一个'context'的第一个参数。”

包含_标签.py

@register.inclusion_tag('post/search_tpl.html', takes_context=True)
def search(self, context, *args, **kwargs):
    request = context['request']
    query = self.request.GET.get('q')
    founded = Post.objects.filter(Q(title__icontains=query)|Q(body__icontains=query))
    return {'founded': founded}

这不是类,没有'self'也可以这样做,但是我得到一个错误“cannotusenone作为查询值”。“这是一个“self-Traceback”错误,因为“以下的查询无法使用”

如果我将“self”替换为第二位-这将导致en错误“'search'没有收到参数的值:'self'

^{pr2}$

搜索_第三方物流.html

<svg xmlns="http://www.w3.org/2000/svg" style="display:none">
  <symbol xmlns="http://www.w3.org/2000/svg" id="sbx-icon-search-13" viewBox="0 0 40 40">
    <path d="M26.804 29.01c-2.832 2.34-6.465 3.746-10.426 3.746C7.333 32.756 0 25.424 0 16.378 0 7.333 7.333 0 16.378 0c9.046 0 16.378 7.333 16.378 16.378 0 3.96-1.406 7.594-3.746 10.426l10.534 10.534c.607.607.61 1.59-.004 2.202-.61.61-1.597.61-2.202.004L26.804 29.01zm-10.426.627c7.323 0 13.26-5.936 13.26-13.26 0-7.32-5.937-13.257-13.26-13.257C9.056 3.12 3.12 9.056 3.12 16.378c0 7.323 5.936 13.26 13.258 13.26z"
    fill-rule="evenodd" />
  </symbol>
  <symbol xmlns="http://www.w3.org/2000/svg" id="sbx-icon-clear-3" viewBox="0 0 20 20">
    <path d="M8.114 10L.944 2.83 0 1.885 1.886 0l.943.943L10 8.113l7.17-7.17.944-.943L20 1.886l-.943.943-7.17 7.17 7.17 7.17.943.944L18.114 20l-.943-.943-7.17-7.17-7.17 7.17-.944.943L0 18.114l.943-.943L8.113 10z" fill-rule="evenodd" />
  </symbol>
</svg>

<form novalidate="novalidate" onsubmit="return false;" class="searchbox sbx-google" action="{% url 'search_view' %}" method='GET'>
  <div role="search" class="sbx-google__wrapper">
    <input type="search" name="q" placeholder="Поиск по сайту" autocomplete="off" required="required" class="sbx-google__input">
    <button type="submit" title="Нажми, чтобы найти" class="sbx-google__submit">
      <svg role="img" aria-label="Search">
        <use xlink:href="#sbx-icon-search-13"></use>
      </svg>
    </button>
    <button type="reset" title="Очисть" class="sbx-google__reset">
      <svg role="img" aria-label="Reset">
        <use xlink:href="#sbx-icon-clear-3"></use>
      </svg>
    </button>
  </div>
</form>
<script type="text/javascript">
  document.querySelector('.searchbox [type="reset"]').addEventListener('click', function() {  this.parentNode.querySelector('input').focus();});
</script>

基地_通用.html

...
{% load inclusion_tag %}
...
{% search %}
...

Tags: svgselfsearchusetagtype错误google
1条回答
网友
1楼 · 发布于 2024-06-16 10:38:10

这样怎么样:

@register.inclusion_tag('post/search_tpl.html', takes_context=True)
def search(context):
    request = context['request']
    query = request.GET.get('q')  # removed self. That was causing the problem
    if not query:
        return {}
    founded = Post.objects.filter(Q(title__icontains=query)|Q(body__icontains=query))
    return {'founded': founded}

相关问题 更多 >