【问题标题】:Overriding default view and template for a model in django / passing variables to grapelli template覆盖 django 中模型的默认视图和模板/将变量传递给gratelli模板
【发布时间】:2016-04-26 00:20:20
【问题描述】:

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

我覆盖了gratelli change_form 模板:

```

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

```

我有两个问题:

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

提前致谢。

【问题讨论】:

    标签: python django templates view django-grappelli


    【解决方案1】:

    您可以在 admin.py 中使用 change_view 覆盖并通过 extra_context 传递变量。例如:

    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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-01-21
      • 2019-04-03
      • 2012-03-15
      • 2020-10-16
      • 2014-11-30
      • 2015-06-22
      • 2012-09-27
      相关资源
      最近更新 更多