【问题标题】:Caught KeyError while rendering: 'opts' in admin interface渲染时捕获 KeyError:管理界面中的“选择”
【发布时间】:2011-11-14 16:39:20
【问题描述】:

我开始使用自定义模板制作自定义管理视图。我创建了模板,由内置的 change_form.html 模板、表单、视图和 url 扩展。我在扩展版本中更改了 {% block form_top %} 的 orig 模板,并在那里传递了我的表单。当我查看页面的 url 时,出现错误:

渲染时捕获 KeyError:管理界面中的“选择”。

这发生在{% submit_row %}模板标签中模板的第60行。那里有完整的追溯http://dpaste.com/hold/612843/。有什么不够?哪里看不足?

编辑:

{% extends "admin/change_form.html" %}

{% block form_top %}
    {{ form.as_p }}
{% endblock %}

编辑:

def order_cats(request):
    form = OrderCats()
    return direct_to_template(request, 'admin/shivaapp/order_cats.djhtml',
                          {'form': form})

【问题讨论】:

  • 这里有些奇怪,dpased traceback (http://127.0.0.1:8000/admin/shivaapp/order_cats) 中的请求 url 建议使用 change_list 页面,而不是 change_form。有些混在一起?
  • Noup。在我的问题中添加了模板代码。

标签: django django-admin django-templates


【解决方案1】:

mkriheli 是正确的,这个 url 呈现为 change_form 而不是 change_list 有点奇怪。显然您在 shivaapp/admin_views.py 中自定义了管理视图,但这样做不正确。

【讨论】:

  • 我没看错,我没有这样做,我只是创建了非常简单的视图,将表单传递给模板。我看这还不够。编辑了我的问题。
【解决方案2】:

错误是我需要覆盖{% block content %},而不是{% block form_top %}

【讨论】:

    猜你喜欢
    • 2013-05-12
    • 1970-01-01
    • 2014-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-17
    • 2016-09-04
    • 2012-10-14
    相关资源
    最近更新 更多