Tôi đang cố gắng mở rộng mẫu change_form.html của một trong các mô hình của tôi để bao gồm một số thông tin trên trang. Tôi đã đọc các tài liệu hướng dẫn django trong https://docs.djangoproject.com/en/1.6/ref/contrib/admin/#overriding-vs-replacing-an-admin-templateSự cố mở rộng change_form.html trong django admin
Vấn đề là rằng đang xảy ra:
NoReverseMatch tại/contas_pagar/pagamento/2/ Xếp cho 'app_list' với các đối số '()' và từ khóa không tìm thấy đối số '{u'app_label': ''} '. 1 mẫu (s) thử: [ '(? P \ w +)/$']
Tôi đang sử dụng Django 1.6.5 với Django-Suit 0.2.12
Hình ảnh lỗi: https://dl.dropboxusercontent.com/u/80415688/error_app_django.PNG
trong my_project/my_app/templates/admin/my_app/my_model/change_form.html
{% extends "admin/change_form.html" %}
trong 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)),)
trong 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))
Có ai có bất kỳ ý tưởng làm thế nào để giải quyết?
UPDATE:
tôi thực hiện một số thay đổi đối với mã.
Chế độ xem nằm trong lớp ModelAdmin của tôi.
trong 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 %}
trong 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))
Không xuất hiện nhiều lỗi. Chỉ cần không hiển thị các trường của lớp Admin của tôi.
Xin chào bạn, cảm ơn phản hồi của bạn. Tôi đã thực hiện thay đổi trong chế độ xem của tôi Ông đã bỏ lỗi tiểu luận ... Nhưng sau đó đã xảy ra lỗi khác ... xem [link] (https://dl.dropboxusercontent.com/u/80415688/error_change_django.PNG) Tôi không thể tìm thấy bất kỳ điều gì về nó. Bất kỳ ý tưởng nào về lỗi này? –
Tuyệt vời @catavaran, Đó là vấn đề, cần phải vượt qua một số biến có nhiều bối cảnh :) Nhưng nếu bạn có thể giúp tôi với một câu hỏi cuối cùng ... Tôi đã cố gắng làm sau câu trả lời của bạn và tôi đã không thành công ... Các trường của biểu mẫu của tôi không được hiển thị cùng với tùy chỉnh của tôi. Họ chỉ đơn giản là không xuất hiện. Tôi cần cung cấp thêm một số biến trong ngữ cảnh? mở rộng một số phương thức của ModelAdmin? –
Hiển thị chế độ xem và mẫu của bạn. – catavaran