【问题标题】:Django-filters FilterView shows empty list on page loadDjango-filters FilterView 在页面加载时显示空列表
【发布时间】:2019-04-30 18:32:15
【问题描述】:

所以我想链接到具有过滤器的给定页面,并让它在我单击搜索之前显示表中的每个项目,并且仅在给出错误输入时才停止显示项目。我的问题类似于以下问题,但有一些区别。 Empty result list on django-filter page startup

海报的默认行为是我想要的行为,我使用的是基于类的视图,而不是功能视图。

我的网址:

from django.urls import path

from . import views

app_name = 'advising'
urlpatterns = [

    path('', views.MyList.as_view(), name='MyList'),

]

我的观点:

from django.http import HttpResponse, HttpResponseRedirect
from django.shortcuts import render, get_object_or_404
from django.views import generic
from django.template import loader
from .models import *
from django_filters.views import FilterView
from .filter import *

class MyList(FilterView):

    template_name = 'advising/MyList.html'
    context_object_name = 'tables'
    filterset_class = MyFilter

    def get_queryset(self):
        return Table.objects.order_by('Name')

我的过滤器:

import django_filters
from .models import Table

class MyFilter(django_filters.FilterSet):
    Name = django_filters.CharFilter(lookup_expr='icontains')

    class Meta:
        model = Table   #The table this form will reference 
        fields = ["Name"]

我的模板:

    <form  method="get">
    {{ filter.form.as_p }}
    <button type="submit">Search</button>
  </form>

    {% if tables %}
        <ul>
        {% for table in tables %}
            <li>{{table}}</a></li>
        {% endfor %}
            </ul>
    {% else %}
        <p>Nothing to see here!.</p>
    {% endif %}

有没有什么方法可以模拟页面首次加载时搜索空字符串的行为?

具体来说,我希望 url advising/ 具有与 url advising/?Name=

相同的行为

现在建议/总是给我一个空列表

【问题讨论】:

    标签: django django-filter


    【解决方案1】:

    终于找到了一篇与我遇到相同问题的帖子(不知道为什么它从未出现在 Google 上),该问题已解决。就像在我看来添加“strict = False”行一样简单。

    这是我发现的为我回答的问题: Display all record on django-filter page startup

    【讨论】:

    • 这应该被选作答案。
    • @coler-j 我的错。当我第一次尝试选择它作为答案时,我收到一条警告消息,说现在选择我自己的评论作为答案还为时过早,而且我已经有一段时间没有上该网站了,我只是忘记了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-25
    • 2019-05-13
    • 2018-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多