Я использую действие Django Admin, но хочу использовать его в модальной форме

Я новичок в django и использую Django admin actions, который дает нам выпадающий список действий администратора. Я использую django-admin-actions 0.1.1

Я создал вид

# views.py
from django.http import HttpResponse
from django.template.loader import render_to_string
from weasyprint import HTML, CSS

from .models import StudentEnrollment

# Django actions
def generate_enrollment_form_pdf(request):
    # Query Student Enrollment data
    enrollments = StudentEnrollment.objects.all()

    # Render HTML template with data
    html_string = render_to_string('enrollment_form.html', {'enrollments': enrollments})

    # Create PDF from HTML with A5 size
    pdf_file = HTML(string=html_string).write_pdf(stylesheets=[CSS(string='@page { size: A6; }')])

    # Return PDF response
    response = HttpResponse(pdf_file, content_type='application/pdf')
    response['Content-Disposition'] = 'filename="enrollment_form.pdf"'

    return response

# Django actions over

и установите urls.py

# urls.py

from django.urls import path

from .views import *

urlpatterns = [
    path('generate-enrollment-pdf/', generate_enrollment_form_pdf, name='generate_enrollment_pdf'),

]

В файле admin.py я создаю функцию для выполнения плана xD

#  Function for Prep Enrollment Print
def print_enrollment_form_pdf(modeladmin, request, queryset):
    # Query Student Enrollment data
    enrollments = queryset

    # Render HTML template with data
    html_string = render_to_string('enrollment_form.html', {'enrollments': enrollments})

    # Create PDF from HTML
    pdf_file = HTML(string=html_string).write_pdf()

    # Return PDF response
    response = HttpResponse(pdf_file, content_type='application/pdf')
    response['Content-Disposition'] = 'filename="enrollment_form.pdf"'

    return response


print_enrollment_form_pdf.short_description = "Print Enrollment Form PDF"

и затем я вызываю это действие в моем modalAdmin

@admin.register(StudentEnrollment)
class StudentEnrollmentAdmin(ImportExportModelAdmin):
    resource_class = StudentEnrollmentResource
    list_display = ('id', 'get_student_name', 'session', 'class_name', 'calculated_age')
    list_display_links = ('id', 'get_student_name', 'session', 'class_name', 'calculated_age')
    list_filter = ('session', 'class_name')
    search_fields = ('student__student_name__first_name', 'student__student_name__last_name')
    autocomplete_fields = ["student", 'session', ]
    readonly_fields = ['class_name', ]

    # action call
    actions = [print_enrollment_form_pdf]

это пока хорошо Я получаю действие в панели действий введите описание изображения здесь

Но я хочу, чтобы это же действие было в модальной форме, я использую модальную форму для добавления пользовательских кнопок введите описание изображения здесь

поэтому я добавил кнопку через change_form.html, а также добавил url в

{% extends 'admin/change_form.html' %}

{% block submit_buttons_bottom %}
  {{ block.super }}

    <form id="enrollmentForm" action="{% url 'generate_enrollment_pdf' %}" method="POST" enctype="multipart/form-data" class="form-control">
     {% csrf_token %}

  <!-- Button for Save and Print -->
  <input type="button" value="Save and Print"/>
</form>



{% endblock %}

Но когда я нажимаю на кнопку сохранения и печати, ничего не происходит. Я хочу, чтобы он сохранял данные модели и печатал, как это делает мой админский экшен в django.

как здесь введите описание изображения здесь

Вернуться на верх