首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向Django提交Mturk答复

向Django提交Mturk答复
EN

Stack Overflow用户
提问于 2015-07-06 16:36:06
回答 1查看 267关注 0票数 1

我试图提交一个机械土耳其任务回到我的Django应用程序和Amazon网站。我的Django应用程序运行良好,但我无法让它提交回Amazon站点。“提交点击”按钮也不可用。

我尝试过在Javascript中向Amazon提交,并在Django视图中提交给Amazon,但两者都不起作用。“提交点击”按钮在任何时候都没有突出显示。

HTML:

代码语言:javascript
复制
<form id="task_form"  method="POST">
    {% csrf_token %}
    <input type="hidden" name="id" value="{{ hit_id }}" />
    <input type="hidden" name="assignmentId" value="{{ assignment_id }}" />
    <input type="hidden" name="workerId" value="{{ worker_id }}" />
    <input type="hidden" id="task_score" name="task_score" value="" />
    <input type="radio" name="outcome_class" onclick="showCausal()" value="{{ s.class1_name }}">
</form>
<input class="btn btn-primary" type="submit" name="submit" id="submit_task_button2"/>

Javascript:

代码语言:javascript
复制
<script type="text/javascript">
    $(function(){
        $("#submit_task_button2").click(function(){
                var a = $('#slider_vals').slider("option", "value")
                document.getElementById("task_score").setAttribute('value', a);
                $.post("{% url 'task' %}", $('#task_form').serialize());
                $.post("{{ amazon_host }}", $('#task_form').serialize());   
            });
        });
</script>

Django:

代码语言:javascript
复制
def task_view(request):
    if request.method == 'POST':
        now_banned = False
        warning = False
        print request.POST
        task = Tasks.objects.get(mturk_hit_id = request.session['hit_id'])

        task.finished_at = timezone.now()
        task.updated_at = timezone.now()
        task.chosen_confidence = int(request.POST['task_score']) + 1
        task.chosen_outcome = request.POST['outcome_class']

        task.turker_comments = request.POST['turker_comments-input']
        task.save()
        request.session.clear()
    ...
    ...
    amazon_host = request.GET.get("turkSubmitTo", "") + "/mturk/externalSubmit"
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-06 17:24:18

解决了问题。我只是更改了以下几行:

Javascript:

代码语言:javascript
复制
<script type="text/javascript">
        $(function(){
            $("#submit_task_button2").click(function(){
                var a = $('#slider_vals').slider("option", "value")
                document.getElementById("task_score").setAttribute('value', a);
                $('#task_form').submit();
                $.post("{% url 'task' %}", $('#task_form').serialize());
            });
        });
</script>

HTML:

代码语言:javascript
复制
<form id="task_form"  method="POST" action="{{ amazon_host }}">

编辑: Amazon的“提交点击”按钮不可用,因为Mturk问题是一个外部问题(通过Boto提交):

代码语言:javascript
复制
boto.mturk.question.ExternalQuestion( URL, FRAME_HEIGHT )
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31251138

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档