2010-10-23 57 views
2

我想将参数{{x}}传递到我的自定义文件change_form.html,它位于/home/django/project/app/template/admin/change_form.html。我发现这个代码,但它不工作:django change_form.html

class MyModelAdmin(admin.ModelAdmin): 
    # A template for a very customized change view: 
    change_form_template = 'admin/change_form.html' 

    def get_osm_info(self): 
     z = Klass() 
     x = z.final_down() 
     return x 

    def change_view(self, request, object_id, extra_context=None): 
     my_context = { 'x': get_osm_info(),} 
     return super(MyModelAdmin, self).change_view(request, object_id,extra_context=my_context) 
+3

“它不工作” 并没有给我们足够的信息。在报告问题时,请始终解释您期望看到的内容以及您实际看到的内容。堆栈跟踪(如果有)非常有用。 – 2010-10-23 13:17:30

+0

另外,它会帮助你知道'Klass'和'final_down'是什么。 – 2010-10-23 19:16:07

回答

2

我觉得其实我可以回答这个问题(对其他任何人发现通过谷歌这个问题)。

Django 1.4实际上改变了change_view的定义方式,您可能在互联网上找到的一些文档或代码片段尚未更新。

https://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.change_view

换句话说,这应该工作:

class MyModelAdmin(admin.ModelAdmin): 
    # A template for a very customized change view: 
    change_form_template = 'admin/change_form.html' 

    def get_osm_info(self): 
     z = Klass() 
     x = z.final_down() 
     return x 

    def change_view(self, request, object_id, form_url='', extra_context=None): 
     context = {} 
     context.update(extra_context or {}) 
     context.update({ 'x': get_osm_info(),}) 
     return super(MyModelAdmin, self).change_view(request, object_id, form_url, context) 
+1

我在尝试,但无法获得它吐出模板中的值... – radtek 2014-10-09 18:47:50

相关问题