如何将变量从 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'])
我在 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'])