Próbuję rozszerzyć szablon change_form.html jednego z moich modeli o niektóre informacje na stronie. Czytałem dokumentację django w https://docs.djangoproject.com/en/1.6/ref/contrib/admin/#overriding-vs-replacing-an-admin-templateProblemy z rozszerzeniem change_form.html w django admin
Problem polega na tym, że zachodzi:
NoReverseMatch w/contas_pagar/pagamento/2/ odwrotnej dla 'app_list' z argumentów '()' i hasła nie znaleziono argumentów "{u'app_label": ""} ". 1 wzór (y) próbował: [ '(? P \ w +)/$']
Używam Django 1.6.5 z Django-suit 0.2.12
Błąd obrazu: https://dl.dropboxusercontent.com/u/80415688/error_app_django.PNG
w my_project/my_app/templates/admin/my_app/my_model/change_form.html
{% extends "admin/change_form.html" %}
w 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)),)
w 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))
Czy ktoś ma jakiś pomysł, jak rozwiązać?
UPDATE:
Zrobiłem kilka zmian w kodzie.
Widok jest w mojej klasie ModelAdmin.
w my_project/my_app/szablony/admin/my_app/my_model/change_form.html:
{% extends "admin/change_form.html" %}
{% block after_field_sets %}{{ block.super }}
<h2>{{ test }}</h2>
{% endblock %}
w 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))
nie pojawiają się więcej błędów. Po prostu nie wyświetla się pól mojej klasy Admin.
Witaj przyjacielu, dziękuję za odpowiedź. Dokonałem zmiany w moim pliku view.py. Spędził Esso błąd ... Ale potem był kolejny błąd ... zobaczyć [link] (https://dl.dropboxusercontent.com/u/80415688/error_change_django.PNG) nie mogłem znaleźć niczego o tym. Czy masz pomysł na ten błąd? –
Niesamowita @catavaran, To był problem, trzeba było przekazać pewne zmienne, jest więcej do kontekstu :) Ale jeśli możesz mi pomóc z jednym ostatnim pytaniem ... Próbowałem zrobić po twojej odpowiedzi i ja nie udało się ... Pola mojego formularza nie zostały wyświetlone wraz z moimi dostosowaniami. Po prostu się nie pojawiają. Czy muszę podać trochę więcej zmiennych w kontekście? rozszerzyć niektóre metody ModelAdmin? –
Pokaż swój widok i szablon. – catavaran