如何将变量从 javascript 传递到 python (oTree) 或 django?

How do you pass a variable from javascript to python (oTree) or django?

我在 Javascript 中创建了一些变量来跟踪个人按住按钮的时间。我想在 python (oTree) 中的 class 中传递这些变量来存储数据。

所以,假设Javascript代码如下:

let javascriptvariable = 0;

此 javascript 变量将在用户单击按钮时更新,因此假设最终值为 javascript 变量 = 100。python 代码如下。

class DisplayCharacteristics2(Page):
    form_model = 'player'
    pythonvariable = javascriptvariable


    @staticmethod
    def vars_for_template(player: Player):
        return {
            "var1": player.var1,
        }

我尝试创建一个空变量,但我收到一条错误消息,提示 javascript 无法“添加”到空变量。我还尝试将 django 与 javascript 结合使用(见下文),但 javascript 无法添加到空变量。我试着先让它等于0,但后来我只得到0的数据点。

let javascriptvariable = `{{ pythonvariable|safe }}`

任何线索将不胜感激!提前致谢。

使用实时页面似乎可以解决问题。

https://otree.readthedocs.io/en/latest/live.html

所以在 Javascript:

 function sendTracker1() {
          liveSend({'which_char': 'char_1', 'value': tracker1})
      }

在Python中:

class MyPage(Page):
    form_model = 'player'

    @staticmethod
    def live_method(player, data):
        if data['which_char'] == 'char_1':
            player.timer_char1 = int(data['value'])