Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
django admin中扩展change_form.html的问题_Django_Templates_Django Admin_Customization - Fatal编程技术网

django admin中扩展change_form.html的问题

django admin中扩展change_form.html的问题,django,templates,django-admin,customization,Django,Templates,Django Admin,Customization,我正在尝试扩展我的一个模型的change_form.html模板,以便在页面上包含一些信息。我已经在中阅读了django文档 问题是正在发生: 诺维塞马奇at/contas_pagar/pagamento/2/ 找不到参数为“()”且关键字参数为“{u'app_label”:“}”的“app_list”的反转。已尝试1个模式:['(?P\w+/$)] 我正在使用Django 1.6.5和Django套装0.2.12 错误图像: 在my_project/my_app/templates/adm

我正在尝试扩展我的一个模型的change_form.html模板,以便在页面上包含一些信息。我已经在中阅读了django文档

问题是正在发生:

诺维塞马奇at/contas_pagar/pagamento/2/ 找不到参数为“()”且关键字参数为“{u'app_label”:“}”的“app_list”的反转。已尝试1个模式:['(?P\w+/$)]

我正在使用Django 1.6.5和Django套装0.2.12

错误图像:

my_project/my_app/templates/admin/my_app/my_model/change_form.html

{% extends "admin/change_form.html" %}
myu项目/url.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)),)
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))
有人知道怎么解决吗


更新:
我对代码做了一些更改。
视图位于我的类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 %}
{%extends“admin/change\u form.html”%}
{%block after_field_sets%}{{block.super}
{{test}}
{%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 PagementLoadMin(admin.ModelAdmin):
形式=页码形式
型号=帕加门托
列表显示=('id'、'parcelas\u contas\u pagar'、'data'、'valor')
def get_URL(自):
url=super(pagmentoadmin,self).get_url()
我的URL=模式(“”,
(r'(?P\d+/$),self.admin_site.admin_view(self.retrona_pagamentos_parcela)),
)
返回我的URL+URL
def Retrona_pagamentos_parcela(自我、请求、id_parcela):
数据={
“测试”:测试,
“选项”:self.model.\u meta,
“应用程序标签”:self.model.\u meta.app\u标签,
"变":对,,
“添加”:False,
'is_popup':False,
“另存为”:False,
'has_delete_permission':False,
'has_add_permission':False,
“具有更改权限”:True
}
返回render_to_response('admin/contas_pagar/pagamento/change_form.html',data,context_实例=RequestContext(请求))

不会出现更多错误。只是没有显示我的类管理员的字段。

这很可能是因为您有一个
{%url%}
标记试图链接到应用程序列表。它可以在您的admin/form_change.html或其他包含/扩展模板中


这通常是由未正确传递的上下文引起的,例如如果您有一个类似于
{%url'app_list%%}
{%url'app_list'var%}
的标记,并且
var
是空的。

包含以下url标记:

{% url 'admin:app_list' app_label=opts.app_label %}
因此,您应该将
opts
变量传递给模板上下文:

data = {'test': 'test',
        'opts': MyModel._meta}
UPDATE
change\u form.html
模板使用
{%submit\u row%}
模板标记,该标记需要一些其他上下文变量,因此
数据
字典应如下所示:

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}

我知道这是一个迟来的答案,但对于那些像我一样正在努力解决这个问题的人来说,这是因为{%foradminform%}adminform-是一个在change_form.html中作为上下文传递的表单,但是我目前不知道如何在扩展中传递它。。。感谢您的评论。

你好,朋友,谢谢您的回复。我在view.py中进行了更改。他犯了埃索错误。。。但是还有一个错误。。。看,我找不到关于它的任何东西。知道这个错误吗?惊人的@catavaran,这就是问题所在,有必要传递一些变量,还有更多的内容:)但是如果你能帮我回答最后一个问题。。。我试着在你回复后做,但没有成功。。。表单的字段未随自定义一起呈现。它们根本就没有出现。我需要在上下文中提供更多变量?扩展ModelAdmin的某些方法?显示您的视图和模板。您好@catavaran,很抱歉延迟。我在帖子中更新了我的代码。如果你试图显示完整的更改表单,那么你必须传递更多(~10)个上下文变量。但我认为这样做是错误的。正确的方法是覆盖
更改视图()
:谢谢你的回答,我的朋友。无法移动到上下文opts变量。但仍然显示了我在回答@catavaran时所说的错误。你知道会是什么吗?