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