我正在使用 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 个问题:
- 如何访问 django 默认传递的模型?
Object
和opts
似乎都不起作用。 - 如何重写默认 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/