Django类型错误 - 渲染到字符串为关键字参数context_instance获取了多个值

时间:2013-08-05 13:27:20

标签: django render typeerror

我是django的新手,我收集管理网站上的所有静态和模板进行自定义。现在我正在尝试从管理站点向change_list.html呈现一个查询集。
view.py

def person_list(request):
    if request.method == 'GET':
        qs = Person.objects.all()
        return render(request, 'admin/change_list.html', {'app_label': 'clients'}, {'results_list':qs})
   else:
       return render(request, 'admin/change_list.html')

我遇到了这种类型错误:

render_to_string() got multiple values for keyword argument 'context_instance'

以下是完整的追溯:

Environment:


Request Method: GET
Request URL: http://localhost:8000/clients/persons/

Django Version: 1.5.1
Python Version: 2.7.4
Installed Applications:
('django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.sites',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'django.contrib.admin',
 'equipment',
 'workers',
 'clients',
 'rents',
 'bills',
 'pays')
Installed Middleware:
('django.middleware.common.CommonMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware')


Traceback:
File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py" in get_response
  115.                         response = callback(request, *callback_args, **callback_kwargs)
File "/home/facundo/dev/BLPServicios/blpservicios/clients/views.py" in persona_list
  9.         return render(request, 'admin/change_list.html', {'app_label': 'clients'},     {'results_list':qs})
File "/usr/local/lib/python2.7/dist-packages/django/shortcuts/__init__.py" in render
  53.     return HttpResponse(loader.render_to_string(*args, **kwargs),

Exception Type: TypeError at /clients/persons/
Exception Value: render_to_string() got multiple values for keyword argument 'context_instance'
你可以帮我解决这个问题吗?谢谢!

2 个答案:

答案 0 :(得分:2)

尝试在一个字典中发送值

{'app_label': 'clients', 'results_list':qs}

答案 1 :(得分:1)

我认为你正在使用管理模块做一些它不能做的事情......你想做什么?

我猜你最好不要在没有管理员的情况下去做。通常自定义它比自己实现代码更痛苦,因为它的复杂性!

特别是,您在admin tamplate change_list.html(第91行)中看到的{% result_list cl %}标记不是模板变量(您尝试在上下文中传递),而是模板自定义标记!无论你想做什么,这都是错误的道路;)