首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >1.10中关于django.shortcuts.render()方法签名的混淆

1.10中关于django.shortcuts.render()方法签名的混淆
EN

Stack Overflow用户
提问于 2016-08-19 17:41:21
回答 1查看 696关注 0票数 2

Django 1.10发行说明(https://docs.djangoproject.com/en/1.10/releases/1.10/#features-removed-in-1-10)说:

  • 删除下列函数的字典和context_instance参数:
    • django.shortcuts.render()
    • ..。

但是,1.10中的render()文档(https://docs.djangoproject.com/en/1.10/topics/http/shortcuts/#render)仍然将context列为dictionary类型的参数

上下文

要添加到模板上下文中的值的字典。默认情况下,这是一个空字典。如果字典中的值是可调用的,则视图将在呈现模板之前调用它。

坦率地说,我的问题是什么?通常这将是一个学术问题,但以下代码:

代码语言:javascript
复制
def index(request):
    context = RequestContext(request, {})
    return render(request, 'maintenance/maintenance.html', context) 

产生此错误:

代码语言:javascript
复制
TypeError: dict expected at most 1 arguments, got 3 

这是我能找到的关于问题所在的最好的线索。我还应该指出,此错误是在将Django从1.8更新到1.10之后出现的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-19 17:51:54

您混淆了contextcontext_instance,这是两个独立的参数。context_instance参数在Django 1.10中已经删除,但是context仍然存在。

正如文档所言,context应该是一个值字典。因为您传递的是一个RequestContext实例而不是一个字典,所以您得到了错误。通过将示例视图更改为:

代码语言:javascript
复制
def index(request):
    context = {}
    return render(request, 'maintenance/maintenance.html', context)
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39044909

复制
相关文章

相似问题

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