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

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

просмотров;

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)

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

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

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

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

Пример forms.py:

from django import forms
from path\to\models.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.

Вернуться на верх