【问题标题】:Why is my django-filter input box not appearing?为什么我的 django-filter 输入框没有出现?
【发布时间】:2021-01-02 20:32:28
【问题描述】:

为什么我的 django-filter 输入框没有出现?我正在尝试用此过滤系统替换搜索栏,因此当他们在标题中搜索特定用户名时,他们将被定向到 account/filter_results.html 页面以显示过滤结果。但是,只出现了提交按钮,而没有出现输入框。请指教

filters.py

import django_filters

from account.models import Account


class UserNameFilter(django_filters.FilterSet):
    username = django_filters.CharFilter(lookup_expr='icontains')

    class Meta:
        model = Account
        fields = ['username']

views.py


def account_search_view(request, *args, **kwargs):
    context = {}
    account = Account.objects.all()
    context['account'] = account 
    username = UserNameFilter(request.GET, queryset=Account.objects.all())
    context['username'] = username
    return render(request, "account/filter_results.html", context)


urls.py

urlpatterns = [
    path('search/', account_search_view, name="search"),
]

header.html 页面

<form method="get">
{{ username.form }}
<input class="btn btn-success" type="submit"/>
</form>

filter_results.html 页面

    {% for obj in username.qs %}
        {{ obj.email }} - ${{ obj.price }}<br />
    {% endfor %}

models.py

class Account(AbstractBaseUser):
 email                  = models.EmailField(verbose_name="email", max_length=60, unique=True)
 username               = models.CharField(max_length=30, unique=True)

【问题讨论】:

    标签: python django django-filter


    【解决方案1】:

    我收到了你的错误

        return render(request, "account/filter_results.html", context)
    

    您正在将您的上下文传递给filter_results.html,并且您正在尝试访问header.html 如果你想在header.html 页面中访问你的表单而不是传递上下文也像这样

    return render(request, "account/header.html", context)
    

    【讨论】:

    • 你好 :) 不,对于 django 过滤器,我认为是 username.form 而不是 form.username
    • 欲了解更多信息,请查看此帖子simpleisbetterthancomplex.com/tutorial/2016/11/28/…
    • @kknam 对你有用吗。
    • 对不起,它不起作用,所以我改用搜索栏
    猜你喜欢
    • 2021-11-27
    • 1970-01-01
    • 2019-04-29
    • 2019-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-21
    • 2021-07-30
    相关资源
    最近更新 更多