首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python Django - django-filters app -基于模型自动生成搜索字段

Python Django - django-filters app -基于模型自动生成搜索字段
EN

Stack Overflow用户
提问于 2017-06-26 19:27:18
回答 1查看 169关注 0票数 1

好的,

我第一次在这里问问题,我确实搜索了类似的问题,但还没有找到我的答案。

我正在用Django开发一个简单的送货应用程序,它显示了客户签到和离开的概述,以及一些送货细节。

我有一个名为"CheckInsListView“和"CheckOutListView”的视图,我想根据django- filter应用程序在用户给定的日期过滤这些列表。

我试着点击这个链接:https://simpleisbetterthancomplex.com/tutorial/2016/11/28/how-to-filter-querysets-dynamically.html

现在的问题是,搜索表单不是自动创建的。它确实显示了submit按钮,但没有生成表单字段。它也没有出现任何错误。

有人能指出我这里错过了什么吗?

提前谢谢你,

凯文

代码语言:javascript
复制
#filters.py
   from .models import Delivery
   import django_filters

   class DeliveryFilter(django_filters.FilterSet):

    class Meta:
        model = Delivery
        fields = ['arrival_date']

添加视图:

代码语言:javascript
复制
#views.py  
"""
Create a search view to sort deliveries on date, django-filter app is used
"""

from django.shortcuts import render
from .models import Delivery
from .filters import DeliveryFilter

def search(request):
    delivery_list = Delivery.objects.all()
    delivery_filter = DeliveryFilter(request.GET, queryset=delivery_list)
    return render(request, 'all_deliveries.html', {'filter': delivery_filter})

和urls

代码语言:javascript
复制
#urls.py
from django.conf.urls import url
from . import views

urlpatterns = [
    url(r'^$', views.index, name='index'),
    url(r'^search/$', views.search, name='search'),
]

html格式的表单

代码语言:javascript
复制
{% extends "framework.html" %}

{% block content %}

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

{% endblock %}
EN

回答 1

Stack Overflow用户

发布于 2017-07-01 23:03:40

代码语言:javascript
复制
delivery_filter = DeliveryFilter(request.GET, queryset=delivery_list)

这仍然会返回过滤过的记录。在那里,您需要在模板中编写一个for循环,如下所示:

代码语言:javascript
复制
<option value="" disabled selected>Select Delivery Item</option>
{% for d in filter %}
<option value="{{ d.id }}">{{ d.arrival_date }}</option>
{% endfor %}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44758666

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档