javascript - Django 将 Python 对象从 View 传递到模板中的 Javascript 脚本

标签 javascript python json django django-templates

这是一个简单的代码,仅用于显示探针, 显然,这个简单代码尝试执行的任务可以在没有 Javascript 的情况下完成,但我需要知道如何使用 Javascript 来完成此任务,因为 在我的真实代码中我需要它,并且没有 Javascript 就无法完成 (基本上我使用 View 中的信息创建一个动态二维数组)

在 View .py

在 def play_game 函数中

...
players = Player.objects.all()
context = {
    'players' : players
}
return render(request,'play_game.html', context)

在模型.py

  class Player(models.Model):

    game = models.ForeignKey(Game, on_delete=models.CASCADE, blank=True, null=True)
    loose = models.IntegerField( default=0)
    win = models.IntegerField(default=0)
    name = models.CharField(max_length=9)

在 play_game.html 中

 <script>
var players = "{{players}}";
for (player in players) {
    document.write(player.name);
    document.write("  Win:"+ player.win); 
    document.write("Loose: " + player.loose); 
};
</script>

最佳答案

您需要serialize您的数据(玩家)。

from django.core import serializers
...
players = serializers.serialize("json", players)
...
return render(request, 'template.html', {'players': players, ...})

在你的模板/脚本中

<script>
var players = {{ players || safe }};
players.map(function (player) {
    document.write(player.name);
    document.write("  Win:"+ player.win); 
    document.write("Loose: " + player.loose); 
});
</script>

参见SO 1SO 2

关于javascript - Django 将 Python 对象从 View 传递到模板中的 Javascript 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41214356/

相关文章:

Python 阶乘程序 - 打印方程

json - spring mvc restcontroller 返回 json 字符串

javascript - 如何将变量与 HtmlWebpackPlugin 和 twig-loader 一起使用?

php - Handsontable javascript - 从服务器加载数组

javascript - 如何处理依赖于另一个 promise 的 promise 循环

python - 在 Ajax 中使用 django url 返回一个字符串

java - 如何将 SQL 查询转换为 JSON 数组

javascript - 如何使用网络库从函数外部获取更新值

javascript - 2个哈希的连接

python - django.core.exceptions.FieldError : Local field 'email' in class 'User' clashes with field of similar name from base class 'AbstractUser'