python - 覆盖 django 中模型的默认 View 和模板/将变量传递给gratelli模板

标签 python django templates view django-grappelli

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

我覆盖了gratelli change_form模板:

```

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

```

我有 2 个问题:

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

提前致谢。

最佳答案

您可以在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)

关于python - 覆盖 django 中模型的默认 View 和模板/将变量传递给gratelli模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34895218/

相关文章:

python - 交互式 Python : cannot get `%lprun` to work, 尽管 line_profiler 已正确导入

python - 为什么我不能从字典中追加这个值?

python - 导入错误 : cannot import name generic

c++ - 模板类的赋值运算符

c++ - 获取地址时模板类型(类/函数)实例化的规则是什么?

python - 如何在Python中导入png图像

python - Bokeh: DateRangeSlider decreases the year by 1 when the chosen start date is Jan 1st

python - EmailMultiAlternatives 的 Celery 错误

django - 我正在尝试使用 django-mptt 构建网站导航

C++:如何为模板类创建小型速度测试?