【问题标题】:Django Type Error - render to string got multiple values for keyword argument context_instanceDjango 类型错误 - 渲染到字符串为关键字参数 context_instance 获取了多个值
【发布时间】:2013-08-06 05:30:52
【问题描述】:

我是 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'

你能帮我解决这个问题吗?谢谢!

【问题讨论】:

    标签: django render typeerror


    【解决方案1】:

    尝试在一个字典中发送值

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

    【讨论】:

    • 我也尝试过,但出现 NoReverseMatch 错误Reverse for 'app_list' with arguments '()' and keyword arguments '{u'app_label': ''}' not found.
    • 所以我尝试创建一个模板覆盖 change_list.html 的 {% block result_list %} 迭代查询集 {% extends "admin/change_list.html" %}{% block result_list %}{% for p in result_list %}{{ p }}{% endfor %}{% endblock %}
    【解决方案2】:

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

    我想您最好尝试在没有管理员的情况下执行此操作。由于其复杂性,通常自定义它比自己实现代码更痛苦!

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

    【讨论】:

    • 我想使用管理模板和管理站点的所有静态信息。显示来自同一模型的不同列表,列出一些连接查询结果,重新排序添加表单的字段
    • django 管理模块不是为此而设计的。你可以设法做到这一点,但它可能会是一个巨大的黑客,不如自己构建一个 django 应用程序那么优雅和可维护性。
    • 非常感谢!我会制作自己的模板
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-08
    • 1970-01-01
    • 2010-12-28
    • 1970-01-01
    • 2012-11-12
    • 2022-01-24
    • 1970-01-01
    相关资源
    最近更新 更多