【问题标题】:Django dropdown filter in querylist查询列表中的 Django 下拉过滤器
【发布时间】:2021-10-28 18:11:34
【问题描述】:

如何使用下拉过滤器列出查询列表?带按钮或动态,谢谢!

观看次数;

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 除了'request'不需要任何参数吗?您需要一些信息来过滤对象。

标签: python django filter dropdown


【解决方案1】:

我不确定我是否完全理解您的问题,但您似乎正试图在下拉列表中显示查询 kibana_list = kibanalar.objects.all() 的结果?

如果您打算在每页上包含 1000000000000000 个项目,我也不确定您为什么要使用分页...我认为它们可能是一个错字或误解...

根据您的目标,您可以通过多种方式完成下拉菜单。

您可以创建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 返回您想要的结果并通过 Javascript 将响应插入到您的 HTML 中。

【讨论】:

    猜你喜欢
    • 2020-11-11
    • 1970-01-01
    • 1970-01-01
    • 2021-02-09
    • 1970-01-01
    • 2017-02-14
    • 1970-01-01
    • 1970-01-01
    • 2019-03-18
    相关资源
    最近更新 更多