覆盖django中的模型的默认视图和模板/将变量传递给grapelli模板

时间:2016-01-20 08:42:54

标签: python django templates view django-grappelli

我正在使用django admin和grappelli,并希望覆盖某个模型的默认视图。

我覆盖了grapelli change_form模板:

```

{% extends "grappelli:admin/change_form.html" %}
{% block javascripts %}
    {{ block.super }}
    <script type="text/javascript">{{Object}}</script>
 {% endblock %}

```

我有两个问题:

  1. 如何访问django默认传递的模型? Objectopts似乎都不起作用。
  2. 如何覆盖默认设置以查看(我需要覆盖的方法是什么)将新变量添加到模板上下文中?
  3. 提前致谢。

1 个答案:

答案 0 :(得分:1)

您可以使用admin.py中的change_view覆盖并通过extra_context传递变量。 e.g:

class GivenModel(models.Model):
    def change_view(self, request, object_id, form_url='', extra_context=None):

                your_obj = GivenModel.objects.get(id=asset_id.group(1))
                extra_context = {'title': your_obj.description}
            return super(GivenModel, self).change_view(request, object_id, form_url, extra_context)