Как скрыть элементы перед фильтрацией в шаблонах django?

#python #django #django-views #django-templates

#python #django #django-представления #django-шаблоны

Вопрос:

у меня простой веб-сайт, и я хочу протестировать фильтры, но у меня проблема! я не хочу, чтобы пользователь видел все результаты, я хочу, чтобы он видел только отфильтрованный, прежде чем начинать фильтрацию или поиск, и вот мой КОД

 (views.py) 

 def Home(request):    
        mobile_filter=MobileFilter(data=request.GET,queryset=MyMobile.objects.all())
        my_phone = mobile_filter.qs
        context={"myphone":my_phone,"myfilter":mobile_filter}
        return render(request,"mobile_home.html",context)
 

(html)

 {% for obj in myphone %}

          
           {{obj.name}}
            {{obj.code}}
            {{obj.date}}
            {{obj.place}}
            {{obj.type}}
            {{obj.mobile}}

         
{% endfor %} 

Комментарии:

1. Мне не совсем понятно, чего вы хотите добиться?

2. у меня есть список из очень многих элементов в базе данных, и я хочу показывать только элементы filterd, а не все из них, и этот цикл показывает их все на главной странице

Ответ №1:

попробуйте это

 def Home(request):
    mobile_filter = MobileFilter(data=request.GET,queryset=MyMobile.objects.all())
    if all(v == '' for v in request.GET.values()):
        # all empty
        my_phone = []
    else:
        my_phone = mobile_filter.qs
    context = {"myphone": my_phone, "myfilter": mobile_filter}
    return render(request, "mobile_home.html", context)