问题标签 [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.
python - oTree 中随机化治疗的有效方法
我正在为我将在我的硕士论文中运行的实验编写代码。我基本上完成了,但我被困在最后一个方面,我找不到解决方法。我有一个公益游戏,有 16 名参与者,分成 8 个两人组。我有 4 次治疗并且我平衡了比赛,每轮治疗由 4 名玩家玩(他们是 12 人)。我目前缺少的部分是我希望每个玩家每轮都打 3 次。这种随机化在下面的代码中执行,理论上可行,但实际上我从未设法完成它。在 20 分钟内,我设法在第 10 轮结束时完成,但无法让程序找到满足上述第 11 轮和第 12 轮两个条件的组合。我知道这有点棘手,如果你更容易理解喜欢它,但是。.. 你有什么建议吗?非常感谢!
django - 如何在表单集创建期间将参数传递给表单
我在 Django 中有一个内联表单集。而且我想知道如何max_value
根据实例参数为该表单集中的表单设置一些。问题是当我们使用创建inlineformset_factory
表单集时,我们传递的不是表单的实例,而是类,所以我不知道如何在那里传递参数。
当表单启动时,instance
在 kwargs 中已经有一个可用的对象被传递到那里。但是由于一些奇怪的原因,当我尝试设置时max_value
没有任何反应。现在我发现了一个非常丑陋的解决方案来设置小部件max
属性。这个可行,但我想知道是否有正确的方法。
django - 如何测试内联表单集
有一个内联表单集可以很好地工作。它仅在测试中失败。
有一个模型可以连接两种类型的参与者:发送者和接收者。
models.py
:
向发送者显示内联表单集,发送者选择发送给接收者的数量:
forms.py
:
和
views.py (CBV)
:
因此,当我尝试对其进行测试时,该行formset.save()
会出错:
因为未设置接收者 ID。虽然,如果我查看返回的 formset.forms 的内容,一切都在那里。同样,在现实生活中,一切都很好,并且得到了适当的保存。所以只有测试会导致错误。我做错了什么?
更新:
我不知道这是否重要,但如果我比较 self.request.POST 在正常流程(未经测试)和测试(最终出现错误的情况下)的输出:
通过测试:
没有测试:
所以除了 csrf 令牌的明显差异之外,一切看起来都一样。
python - 已定义类变量的 NameError
下面,artifact_urls
明确定义了类变量,在 print 语句或 dict 常量中引用它没有问题,但是从列表推导中引用它会引发 NameError。为什么?!?!这是代码和输出。
输出:
django - 使用 IntegerField 而不是 int 编写 for 循环
我正在尝试创建一个 for 循环,用于在 Otree 中创建动态数量的对象,它扩展了 Django(我知道,疯狂的想法,但请耐心等待)。不幸的是,如果您尝试在代码中使用整数,最新版本的 otree 将引发编译时错误。例如,下面的代码:
将抛出以下错误(与以前版本的 Otree 发生的警告相反):
我想解决这个问题的最佳方法是在 for 循环中将 d 声明为 IntegerField 对象,然后使用int () 方法将其转换为 int ,如下所示:
但是我收到一个错误,即 IntegerField 缺少int () 方法。我应该怎么做才能将 IntegerField 转换为 for 循环的 int?谢谢!
python - 在 Windows 10 上安装 oTree 时无法启动项目(“otree”与现有 Python 模块的名称冲突)
在遇到一些困难后,我正在尝试在我的 Windows 10 计算机上重新安装 oTree。我卸载了 oTree 和 Python,并重新安装了 Python,并尝试重新安装 oTree,两者都具有最新的可用版本(Python 3.6.4、oTree 2.0.18)。当我从适当的目录 ( C:\Users\Sarah
) 运行命令时,问题出现在我执行 Python 安装和 oTree 安装之后otree startproject otree
。它拒绝运行如下:
但是,C:\Users\Sarah 中没有 otree 文件夹
在最近的更新(比如两周前)之前,我已经从这个位置安装了它,并使用了最新版本的 oTree,并且一切正常。我已经尝试了很多事情,通常很多次,以使其正常工作,但不断返回相同的错误。我尝试过的事情:
- 有和没有示例游戏
- 再次卸载oTree,并尝试再次重新安装
- 再次卸载oTree,然后再次卸载Python,然后重新安装Python,然后重新安装oTree
- 相同,但在每一步都重新启动
- 相同,但在卸载 Python 后删除了我计算机上 AppData 文件夹中的 Python 和 pip 文件夹(确保当我这样做时,我的计算机上除了计算机的最近链接和一些 Word 文档中的快捷方式外,没有任何其他名称为 oTree讨论一下)
如果有帮助,这里是版本信息:
如果有人提出任何建议,我将不胜感激。
此致,
-莎拉
python - 应用程序不适用于 otree 1.4.4
我有一个 otree 应用程序,可以在我的计算机上完美运行,使用 otree 1.3.1。
在这个应用程序中,我指定了几个设置变量。其中之一称为“确定”,它可以取值 0 或 1,我在 models.py 和 views.py 中将其称为 self.settings.config['sure']。在我的 html 页面中,我有几个条件为“{% if sure == 1 %}”或 {% if sure == 0 %}。
尝试在实验室的计算机上运行它(具有新版本的 otree, 1.4.4 ),我有以下问题:
文件 models.py 读起来很好,所以当我要求在终端上打印“确定”时,它会打印出正确的变量值。
文件views.py无法读取它,因此在html页面中它会变得一团糟:有些东西显示为“确定”== 0,其他显示为“确定”== 1,当我要求显示时html 页面,使用 {{sure}},它什么也不显示。它不显示任何错误消息。问题仅在于设置变量“确定”,并且仅与 otree 1.4.4 版本有关。
到目前为止,我能想到的唯一解决方案是在没有“确定”变量的情况下重新编写应用程序,因此为“确定”创建一个版本 == 0,为“确定”创建一个版本 == 1,但我想避免它。
有没有人遇到过类似的问题并知道如何解决?或者有人可能会猜到是什么导致了问题?会不会是otree的bug?
太感谢了,
基亚拉
编辑:我解决了这个问题,最后这很愚蠢:在新版本的 otree 中,views.py 文件应该被称为 pages.py !我不知道我是否应该删除这个问题,或者它是否对某人有用。!
python - Python:Otree 中的简单计数器
我正在尝试通过修改测验游戏模板使其成为两个玩家在 Otree(Python 库)中实现一个简单的分数计数器。
最终,我希望这个计数器只在某些条件下更新,但现在,我只是想在每一轮之后添加 10。
在 models.py 中,我定义了一个播放器类,如下所示:
上面唯一相关的功能是我在 pages.py 模板中调用的“得分点”,如下所示:
然后我创建一个结果页面,在每个问题之后向我显示测验的结果,以测试每个问题的“total_score”或“pay-offs”是否增加了 10。
如果我使用 Django 公开 total_payoff 和 total_score 的值,我会看到它们的值为 10,并且它永远不会改变。我不知道为什么会这样。有什么想法吗?
jquery - 如何使用 jQuery 选择器标记 oTree Slider 小部件?
我正在尝试像在Slider 下的 jQuery UI Slider Labels中那样标记滑块。但是,我不是在处理 ui-slider,而是在处理来自 oTree 的滑块小部件。
oTree/django 中对 Mandatory slider问题的出色回答解释了如何使用 jQuery 选择器来选择 oTree 滑块:
我有一个显示当前选定值(0-100)的滑块。我想做的是在滑块下方添加一些标签(例如,如果滑块值为温度,则为“冷”、“中性”、“暖”)。我尝试使用以下代码选择 oTree 滑块并附加标签,但没有出现任何标签。
页面的 HTML 如下所示:
我不确定要选择并将标签附加到哪个对象(div?输入?)。
slider - 范围酒吧 otree
我在 Otree 中放置双范围滑块时遇到问题。¿有人可以解释一下,最简单的方法是什么?我想知道也许我必须导入一些新的小部件,但我不知道如何开始,对吗?