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