Я новичок в Django и прошел первое учебное пособие по Django . Я понимаю отдельные биты, но не могу сформировать полное решение.
Мое требование - добавить пользовательскую кнопку на страницу списка изменений модели в Admin, перенаправить ее на страницу подтверждения, выполнить функцию при подтверждении, а затем перенаправить на страницу списка изменений со статусом выполнения.
Я добавил пользовательскую кнопку, но после этого теряюсь.
В настоящее время это то, что я делаю:
Изменен шаблон списка классов администратора
class ReconciliationAdmin(admin.ModelAdmin):
change_list_template = 'SalesReconciliation/change_list.html'
Это мой шаблон списка изменений:
{% extends "admin/change_list.html" %}
{% load i18n admin_static %}
{% block object-tools-items %}
{{ block.super }}
<li>
<a href={% url 'admin:reconcileConfirm'%} class="btn btn-high btn-success">Run Reconciliation</a>
</li>
{% endblock %}
Изменено urls.py в основном приложении следующим образом:
urlpatterns = [
url(r"^reconcileConfirm/", include("SalesReconciliation.urls")),
]
Изменено urls.py в дочернем приложении следующим образом:
urlpatterns = [
url(r'^reconcileConfirm/', views.ReconcileConfirm, name='ReconcileConfirm')
]
В views.py дочернего приложения добавлено следующее:
def ReconcileConfirm(request):
return HttpResponse("..something")
Я надеюсь, что это будет работать как:
Нажмите на ссылку Выполнить согласование -> Основные маршруты urls.py к ребенку.
urls.py -> дочерний urls.py направляет в views.py -> функцию в представлениях py
выполняет некоторые операции
Но я получаю следующие ошибки:
NoReverseMatch по адресу / SalesReconciliation / выверки / обратного для «reconcileConfirm» не найден. 'reconcileConfirm' не является допустимой функцией представления или именем шаблона.
Способ запроса: GET
URL запроса: http://127.0.0.1:8000/SalesReconciliation/reconciliation/
Django Версия: 2.0.4
Тип исключения: NoReverseMatch
Значение исключения: обратное значение для "conconcileConfirm "не найдено.
'reconcileConfirm' не является допустимой функцией представления или именем шаблона.
Также я хотел бы знать, правильный ли это подход.