问题标签 [otree]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
34 浏览

python - 计算平均值

我已经建立了一个表格,玩家可以在三个不同的单元格中输入三个收入值。我想设置第四个计算平均值的单元格。任何想法?

{%formfield 'income1' %}等等是玩家输入值的整数字段。

PS:我正在使用otree

0 投票
0 回答
38 浏览

javascript - 多个脚本

您好我正在尝试在我的 html 页面中插入 2 个脚本。然而,只有一个及其相关数据显示出来。

我错过了什么吗?

0 投票
1 回答
45 浏览

python - Python:通过函数构造类(和变量名)?

我最近开始使用 Python 的类,因为我需要通过使用 OTree(用于在线实验的 Python 框架)来使用它。

在一个文件中,我使用类定义了我想要创建的页面。所以本质上,在 OTree 系统中,每个类对应一个新页面。问题是,所有页面(所以类)基本相同,除了一些两个参数,如下代码所示:

所以在这里,唯一会改变的是类的名称,以及WordsList_整个代码中使用的变量的后缀,即Toy.

天真地,我试图做的是定义一个接受这两个参数的函数,例如:

显然,它不起作用,因为我觉得不可能以这种方式构造变量(或类标识符)。几周前我才开始真正研究 Python,所以它的某些方面可能仍然让我无法理解。你能帮我解决这个问题吗?谢谢你。

0 投票
1 回答
32 浏览

javascript - 如何修复跨度形式的正确值?

我有以下脚本计算一个简单的总和。如果总和超过或低于 100,则会显示显示错误。尽管出现错误消息,用户仍然可以进入下一页。我希望直到值 == 100 他不能移动到下一页。

0 投票
0 回答
48 浏览

probability-distribution - 整数字段 oTree 的概率值

对于一个实验,我想对某个选择导致结果的概率分布进行编程。目前我有:

我试过了:

这给了我一个内部服务器错误。对于实验,我需要实验中的随机数和给定的选择。我应该访问的给定选择

但是在当前状态下:

这会导致 TemplateSyntaxError: Unparsable argument '''Action'''。参数必须是有效的 Python 文字。(第 29 行,在 "player.get_field_display(<span") 中有人知道这些缺陷吗?

0 投票
0 回答
31 浏览

python - Otree Page not found 服务器错误 404。如何在域名中添加子 url?

我正在使用 kubernetes 集群,我已经有一个域名“https://example.com”。我需要通过在已购买用于托管的域上方创建子 URL 来部署 otree 服务器。他们是我可以在 settings.py 中更改以使这种更改发生的东西吗?

在此处输入图像描述

0 投票
0 回答
21 浏览

economics - 如何在 oTree 中将自己指定为玩家 2?

本质上,我想创建一个信任游戏,让我(或我研究团队中的其他人)在每一轮中扮演受托人的角色。

我从基本的信任游戏代码开始:

但是,这当然会将参与者分配到两个角色之一,并让他们与其他参与者而不是我或我的团队一起玩游戏。有关如何实施此结构的任何建议?

0 投票
0 回答
30 浏览

javascript - OTree MouseOver 函数 JavaScript“添加了鼠标悬停以激活未定义”

我在 oTree 中创建了一个游戏,并且正在使用鼠标悬停功能来记录玩家将鼠标悬停在按钮上的时间。这些功能在 FireFox 中有效,但在 Google Chrome 或 Safari 中无效。我收到以下代码的错误:“添加鼠标悬停以激活未定义”:

当我在控制台中检查页面时,它在这一行中指定了错误:

完整代码请参考我的GitHub:https ://github.com/Lizzydrb/Collective-Risk-Social-Dilemma-2/blob/main/_static/global/VT_functionality.js

我不知道为什么它不起作用,有人可以帮我解决这个问题吗?

0 投票
0 回答
31 浏览

postgresql - Heroku 请求超时 (H12)

今天我用一个 otree 应用程序在 Heroku 上运行了我的第一个会话。

不幸的是,参与者得到了错误消息:

7 月 1 日 01:19:33 pgg-jmu app/web.1 websockets.exceptions.ConnectionClosedError:代码 = 1006(连接异常关闭 [内部]),没有原因 7 月 1 日 01:19:33 pgg-jmu app/web.1 own_time=14ms request_id=9c6e69f6-0d8e-47b0-b01b-1a6d940c9daaJul 01 01:19:33 pgg-jmu app/web.1 own_time=11ms request_id=0c69e4a3-b27f-475c-bad9-e63eda6657bd pgg Jul 01 01:193: -jmu heroku/路由器 at=错误代码=H12 desc="请求超时" 方法=GET

  1. 代码是罪魁祸首吗?(该实验旨在改善全球化世界中的合作)

    migration_list = []
    German_list = []

    for p in waiting_players:
    if p.participant.vars['origin'] == 'Nein':
    migration_list.append(p)
    if p.participant.vars['origin'] == ' Ja':
    German_list.append(p)

    group_list = Subsession.get_groups(self)[1:]

    distribution_list = [0, 0, 0, 0]

    if group_list:
    for group in group_list:
    German_counter = 0
    migration_counter = 0
    for player in group .get_players():
    if player.participant.vars['origin'] == 'Nein':
    migration_counter += 1
    if player.participant.vars['origin'] == 'Ja':
    German_counter += 1
    if German_counter = = 0 和移民计数器 == 3:
    分布列表[0] += 1
    如果 German_counter == 1 和 migration_counter == 2:
    distribution_list[1] += 1
    如果 German_counter == 2 和 migration_counter == 1:
    distribution_list[2] += 1
    如果 German_counter == 3 和 migration_counter == 0:
    distribution_list[3 ] += 1

匹配工作如下:

    1. 当有 15 人处于等待状态或第一个处于等待状态的人已经等待 13 分钟时,将创建第一组 3 人。(代码不包括在上面)(没有问题的工作)
  1. 在创建第一组后,其余玩家在等待循环中被分成 3 组。目的是实现群体组成的一定分布。(代码未包含在上面)

列表migrant_list、german_list、group_list 和distribution_list(见代码)用于此目的。

  • migrant_list 和 German_list 列表包含队列中在上一次调查中对有关其出身的问题回答“是”(德国)或“否”(移民)的玩家。

  • group_list 是包含子会话的所有组的列表,不包括第一组。

  • distribution_list 是包含会话的已匹配组的不同组星座的数量的列表。

有四种可能的星座:

o 3 名移民

o 2 名移民,1 名德国人

o 1 名移民,2 名德国人

o 3 名德国人

要创建 distribution_list,请遍历 group_list 中的每个组以及相应组中的每个玩家。这些是 group_by_arrival_time_method 的代码中唯一的循环,我认为这可能会导致负载增加。

-> 发生错误时,在第一组之后跳过几组。今天:请求超时后从 ID 2 到 ID 80。

  1. 对于所使用的功率来说,这个过程是否可能过于复杂?

我使用: Dyno (Web) Standard X1

我应该:将参与者人数减少到 12 人,同时增加测功机的功率吗?

  1. 实现数据库时我做错了什么吗?

我删除了免费数据库并实施了新的 Postgres Standard 0。否则,我没有采取任何进一步的措施。(仅在 Heroku 的资源页面上)

谢谢!

最佳安德烈

0 投票
0 回答
15 浏览

python - 折扣因子 - Otree - 游戏结束的概率

我想在我的 otree 游戏中实现游戏以 5% 的概率结束。这应该是一个折扣因素。我怎样才能做到这一点?