django - 问题在django admin中扩展了change_form.html

标签 django templates django-admin customization

我正在尝试扩展我的模型之一的change_form.html模板,以在页面上包含一些信息。我已经阅读了django文档
https://docs.djangoproject.com/en/1.6/ref/contrib/admin/#overriding-vs-replacing-an-admin-template

问题是发生了:

NoReverseMatch at /contas_pagar/pagamento/2/ Reverse for 'app_list' with arguments '()' and keyword arguments '{u'app_label': ''}' not found. 1 pattern(s) tried: ['(?P\w+)/$']



我正在将Django 1.6.5与Django-Suit 0.2.12一起使用

错误图片:
https://dl.dropboxusercontent.com/u/80415688/error_app_django.PNG

my_project/my_app/templates/admin/my_app/my_model/change_form.html
{% extends "admin/change_form.html" %}

my_project/urls.py
urlpatterns = patterns('',
    url(r'^contas_pagar/pagamento/(?P<id_parcela>\d+)/$',
                             'contas_pagar.views.retorna_pagamentos_parcela'),
    # django urls
    url(r'^doc/', include('django.contrib.admindocs.urls')),
    url(r'', include(admin.site.urls)),)

my_project/views.py
def return_id(request, id):
    data = { 'test': 'test', }
    return render_to_response('admin/my_app/my_model/change_form.html', data,
                              context_instance=RequestContext(request))

有谁知道如何解决吗?

更新:
我对代码进行了一些更改。
该 View 在我的ModelAdmin类中。

在my_project / my_app / templates / admin / my_app / my_model / change_form.html中:
{% extends "admin/change_form.html" %}
{% block after_field_sets %}{{ block.super }}
    <h2>{{ test }}</h2>
{% endblock %}

在my_project / my_app / admin.py中:
class PagamentoAdmin(admin.ModelAdmin):
form = PagamentoForm
model = Pagamento
list_display = ('id', 'parcelas_contas_pagar', 'data', 'valor')

def get_urls(self):
    urls = super(PagamentoAdmin, self).get_urls()
    my_urls = patterns('',
        (r'(?P<id_parcela>\d+)/$', self.admin_site.admin_view(self.retorna_pagamentos_parcela)),
    )
    return my_urls + urls

def retorna_pagamentos_parcela(self, request, id_parcela):
    data = {
        'test': test,
        'opts': self.model._meta,
        'app_label': self.model._meta.app_label, 
        'change': True,
        'add': False,
        'is_popup': False,
        'save_as': False,
        'has_delete_permission': False,
        'has_add_permission': False,
        'has_change_permission': True
    }
    return render_to_response('admin/contas_pagar/pagamento/change_form.html', data, context_instance=RequestContext(request))

没有出现更多错误。只是没有显示我的类(class)Admin的字段。

最佳答案

change_form.html包含以下url标记:

{% url 'admin:app_list' app_label=opts.app_label %}

因此,您应该将opts变量传递给模板上下文:
data = {'test': 'test',
        'opts': MyModel._meta}

UPDATE :change_form.html模板使用{% submit_row %}模板标签,该标签需要一些其他上下文变量,因此data字典应如下所示:
data = {'test': 'test',
        'opts': MyModel._meta,    
        'change': True,
        'is_popup': False,
        'save_as': False,
        'has_delete_permission': False,
        'has_add_permission': False,
        'has_change_permission': False}

关于django - 问题在django admin中扩展了change_form.html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28777376/

相关文章:

templates - GitHub:Template 和 Fork 概念之间有什么区别以及何时使用?

python - 在多对多字段上启用 Django 管理过滤器

有效用户的 django 管理员登录失败

c++ - 对部分模板特化的说明

c++ - 如何使用模板根据类中的参数设置数组大小

django - 您可以更改 Django admin 'is_staff' 标志的名称吗?

python - Django oscar 在 <WSGIRequest GET > 中查找键 [basket] 失败

python - Django 中有类似 NSUserDefaults 的东西吗?

python - 使用 Django 调整图像大小?

python - Django Rest Framework - AssertionError 修复您的 URL conf,或在 View 上正确设置 `.lookup_field` 属性