gpt4 book ai didi

python - 如何让python不将L附加到longs或在django模板中忽略

转载 作者:行者123 更新时间:2023-11-29 03:10:26 24 4
gpt4 key购买 nike

有没有办法绕过 python 在每次从数据库中出来时向 Ints 附加一个“L”而不进行强制转换? (注:我用的是Mysql)

或者,有没有办法忽略 Django 模板中的 L? (因此,我不断收到无效的格式错误,但我不想每次都进行列表理解/转换)

例如我有一个以对象的 pk 作为键的字典,我在 Firebug 中得到以下内容:

无效的属性IDalert({183L:

Model:提问对象,其他属性无所谓,因为提问的属性就是pk

查看:代码不是我写的,我也不太理解,所以我不能发布创建变量的部分,但它是一个以问题 pks 作为键和投票对象的字典作为值(有问题的代码来自 http://code.google.com/p/django-voting/wiki/RedditStyleVoting )

模板:{% votes_by_user user on questions as vote_dict %} 生成有问题的字典警报({{vote_dict}});正在触发错误

虽然在这种特殊情况下,我只是想提醒我返回的字典,但在将字典或数组传递到函数调用因 L 而失败的 js 函数时,这对我来说是一个反复出现的问题。(只是为了给你问题背后的动力)

最佳答案

Django 在这里没有任何问题。但是,很难为您提供相关的解决方案,因为我们并不真正了解您想要实现的目标。

无论如何,请调用 {{ vote_dict }}将调用 said dict 的 __str__方法,这是常见的{key_repr:value_repr}模式。

如果您要执行以下操作:

{% for key, value in vote_dict.items %}
{{ key }} : {{ value }}
{% endfor %}

如果没有 L,您会得到您期望的结果的。

旁注,alert({{vote_dict}})几乎总是会引发 JS 错误:alert的参数应该是一个字符串。

关于 Django - JS 互操作性

如果您想要实现的目标是将 Django 项无缝地传递到 JS 函数中(这确实可以通过 list 实例实现),您可以定义一个模板过滤器来返回您需要的内容。

对于一个列表(或者任何一种你想表示为列表的可迭代对象),你可以使用以下内容:

def js_list(iterable):
return '[%s]' % ', '.join(str(item) for item in iterable)

关于python - 如何让python不将L附加到longs或在django模板中忽略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9404142/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com