He creado algunas variables en Javascript para rastrear cuánto tiempo una persona mantiene presionado un botón. Me gustaría pasar estas variables dentro de una clase en python (oTree) para almacenar los datos.
Entonces, supongamos que el código Javascript es el siguiente:
let javascriptvariable = 0;Esta variable de javascript se actualizará a medida que el usuario haga clic en el botón, así que digamos que el valor final es variable de javascript = 100. El código de Python se encuentra a continuación.
class DisplayCharacteristics2(Page): form_model = 'player' pythonvariable = javascriptvariable @staticmethod def vars_for_template(player: Player): return { "var1": player.var1, }Intenté crear una variable vacía, pero aparece un error que dice que javascript no puede "agregar" a una variable nula. También intenté usar django en combinación con javascript (ver más abajo), pero javascript no puede agregarse a una variable nula. Traté de dejarlo igual a cero primero, pero luego solo obtengo puntos de datos de 0.
let javascriptvariable = `{{ pythonvariable|safe }}`¡Cualquier pista será apreciada! Gracias por adelantado.
El uso de páginas en vivo parece resolver el problema.
https://otree.readthedocs.io/en/latest/live.html
Entonces en Javascript:
function sendTracker1() { liveSend({'which_char': 'char_1', 'value': tracker1}) }Y en 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'])