【问题标题】:Passing string list to javascript function Django将字符串列表传递给javascript函数Django
【发布时间】:2021-05-31 08:50:12
【问题描述】:

我正在构建我的第一个 Django 应用程序。 我想调用一个接收字符串列表的 javascript 函数。 在我当前的版本中,我发送一个像这样的 Django 对象(称为提供者)属性,它工作正常:

<a href="#" class="button secondary tiny" onclick="download_provider_files('{{ provider.full_name }}')"><i class="fi-download"></i></a>

但是现在我想调用一个返回字符串列表的Provider模型方法,那么我可以在Js方法中对这个列表做一些事情

def get_provider_files_urls(self):
        provider_files = self.provider_files.all()
        file_list = []
        for f in provider_files:
            file_list.append(f.file.name)
        return file_list

我试过了:

<a href="#" class="button secondary tiny" onclick="download_provider_files('{{ provider.get_provider_files_urls }}')"><i class="fi-download"></i></a>
              

得到了这个错误:

Uncaught SyntaxError: missing ) after argument list

【问题讨论】:

    标签: javascript python django django-templates javascript-objects


    【解决方案1】:

    从列表生成 JS 数组的一种快速而肮脏的方法是使用 join 过滤器

    onclick="download_provider_files(['{{ provider.get_provider_files_urls|join:"', '" }}'])"
    

    使用json_script 过滤器可能更干净

    【讨论】:

    • 我必须稍微调整一下,但现在可以了。谢谢!!我也会看看 json_script
    猜你喜欢
    • 2020-01-01
    • 2014-02-04
    • 1970-01-01
    • 1970-01-01
    • 2018-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多