2017-06-26 4 views
1

さてさて、Pythonのジャンゴ - ジャンゴ・フィルタアプリ - モデルに基づいて自動生成さsearchfield

私はここの上に質問をしてい

まず時間が、私は同様の質問を検索しましたが、私の答えはまだ見つかっていない ...

私はDjangoで簡単な配信アプリを開発中です。顧客のチェックインとチェックアウトの概要と配信の詳細を表示します。

"CheckInsListView"と "CheckOutListView"と呼ばれるビューがあり、django-filtersアプリケーションに基づいて、これらのリストを指定した日付のユーザーにフィルタリングしたいと思います。

私は、このリンク以下試してみました:https://simpleisbetterthancomplex.com/tutorial/2016/11/28/how-to-filter-querysets-dynamically.html

今、searchformが自動的に作成されていない問題。送信ボタンが表示されますが、フォームフィールドは生成されません。それはどんなエラーでも発生しません。

誰かが私がここで紛失していることを指摘できますか?予め

おかげで、

ケビン

#filters.py 
    from .models import Delivery 
    import django_filters 

    class DeliveryFilter(django_filters.FilterSet): 

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

ビューの追加:HTML

#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}) 

およびURL

#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'), 
] 

{% 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 %} 
+0

私はあなたがフォーム –

+0

で私はCSRFトークンを必要としないと思う '' {%csrf_token%}を追加するのを忘れだと思い、CSRFトークンはmethod = "post"で使用されます... –

答えて

0
delivery_filter = DeliveryFilter(request.GET, queryset=delivery_list) 

これはまだフィルタレコードを返すために起こっています。そこには、テンプレートに以下のようなものをforループを記述する必要があります。

<option value="" disabled selected>Select Delivery Item</option> 
{% for d in filter %} 
<option value="{{ d.id }}">{{ d.arrival_date }}</option> 
{% endfor %}