【问题标题】:Whats wrong with an assignment作业有什么问题
【发布时间】:2011-06-12 16:37:55
【问题描述】:

怎么了?

File "trunk/website/auth/user/emailchange/views.py" in email_change_view
102. context['form'] = form
File "/usr/local/lib/python2.6/dist-packages/django/template/context.py" in __setitem__
39. self.dicts[-1][key] = value

Exception Type: TypeError at /accounts/email/change/ Exception Value: 'SendUsernameForm' object does not support item assignment

这是代码

else:
    form = EmailChangeForm(username=request.user.username)

context = RequestContext(request, extra_context)
context['form'] = form

return render_to_response(template_name, context_instance=context)

HTML 代码:

<form method="post">{% csrf_token %}
            {{ form.as_p }}
            <p><input type="submit" value="Change email address" /></p>
</form>

有什么想法吗?

【问题讨论】:

    标签: python django web


    【解决方案1】:

    form 添加到extra_context dic,而不是context

    错误的意思是,context['form'] 无效,所以这是一个开始思考是否应该以这种方式使用 RequestContext 的好地方。

    RequestContext 文档:http://docs.djangoproject.com/en/dev/ref/templates/api/#django.template.RequestContext

    else:
        form = EmailChangeForm(username=request.user.username)
    
    extra_context['form'] = form
    context = RequestContext(request, extra_context)
    

    【讨论】:

    • 感谢它正在工作!但是为什么不应该使用它呢?对不起,我是 Django 和 pyhton 的新手!
    • 为什么不应该使用它?因为这不是 django 开发人员构建要使用的 RequestContext 的方式。 PS:我想知道您的代码是否有其他问题?你会发布你的整个视图吗?听起来您将SendUserNameForm 传递为extra_context 而不是dict
    猜你喜欢
    • 1970-01-01
    • 2014-03-13
    • 2016-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-03
    • 1970-01-01
    相关资源
    最近更新 更多