swami
swami

Reputation: 467

How to display django queryset values in templates using javascript

I am trying to display list of names from a django queryset using , Here is my code

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)

I want to display batnames on template

$(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,
            ...
            ...
            }

I am tried something like var batData = [{"bat":"{{bats|join:', ' }}"] but it is displaying obj1,obj2 in same row,I also tried to loop through but failed , any help will appreciated.

Upvotes: 1

Views: 492

Answers (1)

Jafoor
Jafoor

Reputation: 735

This way you can work with 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,
            ...
            ...
            }

Upvotes: 3

Related Questions