モデルの1つのchange_form.htmlテンプレートを拡張して、ページにいくつかの情報を含めようとしています。 Djangoのドキュメントを https://docs.djangoproject.com/en/1.6/ref/contrib/admin/#overriding-vs-replacing-an-)で読みましたadmin-template
問題はそれが起こっているということです:
/ contas_pagar/pagamento/2 /のNoReverseMatch引数 '()'およびキーワード引数 '{u'app_label': ''} 'を使用して' app_list 'を逆にします。 1つのパターンが試行されました:['(?P\w +)/ $']
私はDjango 1.6.5とDjango-Suit0.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))
誰かが解決する方法を知っていますか?
UPDATE:
コードにいくつか変更を加えました。
ビューは私のクラス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))
これ以上のエラーは表示されません。クラス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}
これは、app_listにリンクしようとしている{% url %}
タグがあることが原因である可能性があります。 admin /form_change.htmlまたは他の含まれている/拡張されたテンプレートにある可能性があります。
これは通常{% url 'app_list' %}
または{% url 'app_list' var %}
のようなタグがあり、var
が空の場合など、正しく渡されないコンテキストが原因です。