无法在 django 视图中的 url 中获取 GET 表单数据

瓦苏伙伴

我正在尝试进行搜索视图,并显示结果。所以没有分页搜索视图工作正常但是当我添加分页时它停止工作。下面是我的代码

视图.py

def search_query(request):
    if request.method == 'GET':
        #try:
        if 'q' in request.GET:
            query_string= request.GET.get('q')

            if len(query_string) == 0:
                return HttpResponseBadRequest('Invalid Search')
            else:
                query_list = query_string.split(' ')
                posts = _search(query_list)
                paginator = Paginator(posts, 1) 
                page = request.GET.get('page')
                if page is None:
                    page = 1
                else:
                    pass
                try:
                    posts = paginator.page(page)

                except PageNotAnInteger:

                    posts = paginator.page(1)
                    return HttpResponseBadRequest()
                except EmptyPage:

                    posts = paginator.page(paginator.num_pages)

                    return HttpResponseBadRequest()

                context = {
                    'posts': posts,
                }
                return render(request, 'search/search.html', {'posts': posts,})
    #except:
        #   return HttpResponseBadRequest('Outside Try')

下面的函数进行实际搜索

def _search(query_list):
    result = []
    for query in query_list:
        query = query.lower()
    try:        
        posts = Post.objects.order_by('-date_created').filter(tag__tag__icontains=query)
        for post in posts:
            if post in result:
                pass
            else:
                result.append(post)
    except:
        result = None
    return result

下面是search.html分页部分的片段

<nav aria-label="Page navigation example">
        <ul class="pagination justify-content-center">

        {% if posts.has_previous %}
            {% comment %} <a href="?page={{ posts.previous_page_number }}">previous</a> {% endcomment %}
            <li class="page-item">
                <a class="page-link" href="?q={{ request.GET.q }}&?page={{ posts.previous_page_number }}" tabindex="-1">Previous</a>
            </li>
        {% else %}
            <li class="page-item disabled">
                <a class="page-link" href="#" tabindex="-1">Previous</a>
            </li>
        {% endif %}

          <li class="page-item"><a class="page-link" href="?q={{ request.GET.q }}&?page={{ posts.number }}">{{ posts.number }}</a></li>

        {% if posts.has_next %}
            <li class="page-item">
                <a class="page-link" href="?q={{ request.GET.q }}&?page={{ posts.next_page_number }}">Next</a>
            </li>
        {% endif %}
        </ul>
    </nav>

现在的问题是当我打印(页面)时,这里的页面值为 None

page = request.GET.get('page')
谢里夫·乔杜里

当页面是第二个参数时不需要在?之前添加page

用这个更改代码

<nav aria-label="Page navigation example">
        <ul class="pagination justify-content-center">

        {% if posts.has_previous %}
            {% comment %} <a href="?page={{ posts.previous_page_number }}">previous</a> {% endcomment %}
            <li class="page-item">
                <a class="page-link" href="?q={{ request.GET.q }}&page={{ posts.previous_page_number }}" tabindex="-1">Previous</a>
            </li>
        {% else %}
            <li class="page-item disabled">
                <a class="page-link" href="#" tabindex="-1">Previous</a>
            </li>
        {% endif %}

          <li class="page-item"><a class="page-link" href="?q={{ request.GET.q }}&page={{ posts.number }}">{{ posts.number }}</a></li>

        {% if posts.has_next %}
            <li class="page-item">
                <a class="page-link" href="?q={{ request.GET.q }}&page={{ posts.next_page_number }}">Next</a>
            </li>
        {% endif %}
        </ul>
    </nav>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将html表单数据获取到基于django类的视图中

来自分类Dev

如何在Django视图中从URL中删除get参数

来自分类Dev

无法在Django视图中获取http POST数据

来自分类Dev

无法在Django视图中从数据库中删除项目

来自分类Dev

Django中多个视图中的相同URL

来自分类Dev

Django无法处理html表单数据

来自分类Dev

从未绑定的视图中获取数据,并使用linq将表单数据提交到表中

来自分类Dev

无法使用 Laravel 获取视图中的数据

来自分类Dev

Ajax获取表单数据和URL

来自分类Dev

使用ajax提交表单时,无法从视图中获取控制器中的字段数据

来自分类Dev

使用ajax提交表单时,无法从视图中获取控制器中的字段数据

来自分类Dev

在Go中无法获取Angular / Restangular表单数据

来自分类Dev

Multer无法在Express 4中获取上传表单数据

来自分类Dev

数组中的Django表单数据

来自分类Dev

Django无法在基于类的视图中呈现表单

来自分类Dev

如何在Django视图中获取静态URL

来自分类Dev

在Express中获取POST和GET请求的表单数据

来自分类Dev

URL和视图中DJango中的筛选字段

来自分类Dev

Django-参数在视图中而不在URL中

来自分类Dev

URL和视图中DJango中的过滤字段

来自分类Dev

Django:将表单数据转换为“干净的 url”

来自分类Dev

$ routeProvide获取视图中URL中的值

来自分类Dev

在 Django 数据库中插入表单数据

来自分类Dev

无法使用ng-model获取表单数据

来自分类Dev

表单数据无法获取角度节点 mongodb

来自分类Dev

C#MVC获取表单数据作为URL参数

来自分类Dev

获取表单数据并将其发布到URL

来自分类Dev

C#MVC获取表单数据作为URL参数

来自分类Dev

无法在视图中获取值。

Related 相关文章

热门标签

归档