简体   繁体   English

django-filters 表单不显示(只有提交按钮显示)

[英]django-filters form not showing(only the submit button does)

template模板

<form method="get">
    {{ filter.form.as_p }}
    <input type="submit" value="Press" />
</form>
{% for obj in filter.qs %}
    {{ obj.WorkType }} - ${{ obj.desired_wage }}<br />
{% endfor %}

views观点

@login_required(login_url='login')
def ListingsPage(request):
review = Review.objects.all()

    filter = Profilefilter(request.GET, queryset=Profile.objects.all())
    
    context = {"profile":profile,"review":review,"filter":filter}
    
    return render(request,"base/Listings.html",context)

filters.py过滤器.py

import django_filters
from .models import Profile

class Profilefilter(django_filters.FilterSet):
name = django_filters.CharFilter(lookup_expr='iexact')

    class Meta:
        model = Profile
        fields = ['WorkType', 'gender']

urls.py网址.py

urlpatterns = [
    path('Listings/', views.ProfileSearch, name='profile_search_bar'),
    path('',views.hello,name="home"),
    path('Listings/', views.ListingsPage,name="listings"),

It is supposed to be showing the filters but doesn't render anything, only the submit button shows up.它应该显示过滤器但不呈现任何内容,只显示提交按钮。 I think it is something to do with passing the context, not sure tho我认为这与传递上下文有关,但不确定

You need to add qs for query filter您需要为查询过滤器添加qs

  def ListingsPage(request):
      review = Review.objects.all()
  
      filter = Profilefilter(request.GET, queryset=Profile.objects.all())
      review = filter.qs
      
      context = {"profile":profile,"review":review,"filter":filter}
      
      return render(request,"base/Listings.html",context)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM