【问题标题】:How to display django queryset values in templates using javascript如何使用 javascript 在模板中显示 django 查询集值
【发布时间】:2021-10-03 01:36:27
【问题描述】:

我正在尝试使用 django 查询集显示名称列表,这是我的代码

def vfunc(request):
    context={}
    bats = Bat.objects.all().order_by('-id')
    context['bats'] = bats
    [each.batname for each in bats] # Gives all the batnames. 
    return render(request, 'bat.html', context)

我想在模板上显示蝙蝠名称

$(function() {
//This works when I hardcode the values
    var batData =  [{
            "bat":"batname1", //hardcoded & displayed in 1st row
        },  {
            "bat":"batname2", //hardcoded & displayed in 2nd row
        }];
        $("#CleanDatasNames").dxDataGrid({
            dataSource: batData,
            ...
            ...
            }

我尝试过类似 var batData = [{"bat":"{{bats|join:', ' }}"] 但它在同一行显示 obj1,obj2,我也尝试循环但失败了,任何帮助将不胜感激。

【问题讨论】:

    标签: javascript python jquery django django-templates


    【解决方案1】:

    这样你就可以使用js了:

    $(function() {
    //This works when I hardcode the values
        var batData =  [
    {% for bat in bats %}  
    {
                "bat":"{{bat}}", 
    }
    {% if forloop.counter != bats|length %} // dynamically checking for last element
        , 
    {% endif %}
    {% endfor %}
    ];
            $("#CleanDatasNames").dxDataGrid({
                dataSource: batData,
                ...
                ...
                }
    

    【讨论】:

    • 这是一个很大的帮助,非常感谢@Jafoor
    • 1 qoubt,请解释一下forloop.counter的if条件,有必要吗?
    • 一般我们不使用,最后一个元素。无论您是否使用 JavaScript,, 都可能不会打扰它。但是对于干净和完美的代码,您可以使用它。
    猜你喜欢
    • 2016-03-16
    • 2023-03-07
    • 2021-11-17
    • 2020-10-17
    • 2012-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-26
    相关资源
    最近更新 更多