Раскрывающийся фильтр Django в списке запросов

#python #django #filter #dropdown

Вопрос:

как я могу отобразить список запросов с помощью раскрывающегося фильтра? с помощью кнопки или динамично, спасибо вам!

число просмотров;

 def kibana(request):
    kibana_list = kibanalar.objects.all()
    paginator = Paginator(kibana_list, 1000000000000000)
    page = request.GET.get('page')
    try:
        kmembers = paginator.page(page)
    except PageNotAnInteger:
        kmembers = paginator.page(1)
    except EmptyPage:
        kmembers = paginator.page(paginator.num_pages)
    return render(request, 'kibanalar.html', {'kmembers': kmembers})  
 

models.py;

 class kibanalar(models.Model):
    datacenter = models.TextField(max_length=100, null=True)
    dashboardtipi = models.TextField(max_length=100, null=True)
    isim = models.TextField(max_length=100, null=True)
    link = models.TextField(max_length=100, null=True)
    kullaniciadi = models.TextField(max_length=100, null=True)
    sifre = models.TextField(max_length=100, null=True)
 

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

1. kibana Не нужны никакие параметры, кроме «запроса»? Вам нужна некоторая информация для фильтрации объектов.

Ответ №1:

Я не уверен, что полностью понимаю ваш вопрос, но, похоже, вы пытаетесь отобразить результаты запроса kibana_list = kibanalar.objects.all() в раскрывающемся списке?

Я также не уверен, почему вы используете разбиение на страницы, если вы собираетесь разместить 1000000000000000 элементов на каждой странице… Я думаю, что здесь может быть опечатка или недоразумение…

Есть несколько способов выполнить выпадающее меню, в зависимости от вашей цели.

Вы могли бы создать forms.py и использовать forms.ChoiceField

Пример forms.py:

 from django import forms
from pathtomodels.py import kibanalar

class MyForm(forms.Form):
My_Dropdown = forms.Choicefield(choices=createChoicesTuple(), required=False)


def createChoicesTuple():
    value = list(kibanalar.objects.values_list('field_you_want', flat=True))
    display_name = list(kibanalar.objects.values_list('another_field_you_want', flat=True))
    data = tuple(zip(value,display_name))
    return data
 

Другим вариантом было бы вернуть нужные результаты с помощью JsonResponse и вставить ответ в свой HTML с помощью Javascript.