Как динамически направить на URL с идентификатором элемента, выбранного с помощью JQuery на Django - PullRequest
0 голосов
/ 22 апреля 2020

Я заполняю данные (заказ клиента в моем случае) из базы данных в таблицу, используя теги шаблона Django. Я присвоил уникальный идентификатор (order.id) идентификатору тега «a». При нажатии этого тега «а» я написал функцию, которая выбирает идентификатор нажатой кнопки, а затем открывает модальное диалоговое окно. Теперь мне нужно, чтобы модальное тело показывало имя order.name динамически, а затем предоставляло пользователю две опции - 1. «Нет», что закрывает модал 2. «Да», которое должно направлять к представлениям вместе с выбранным идентификатором.

Я застрял здесь.

html

        <div class = 'col-md-7'>
            <h4>ORDERS</h4>
            <hr>
            <div class = 'card card-body'>
                <a class = 'btn btn-primary text-white' href = "{% url 'createOrder' %}">Create Order</a>
                <table class = 'table table-sm'>
                    <tr>
                        <th>Product</th>
                        <th>Date Ordered</th>
                        <th>Status</th>
                        <th>Update</th>
                        <th>Remove</th>
                    </tr>
                    {% for order in orders %}
                    <tr>
                        <td>{{order.Product.name}}</td>
                        <td>{{order.created_on}}</td>
                        <td>{{order.status}}</td>
                        <td><a href = "{% url 'updateOrder' order.id %}" style = "color: #005ce6;"><i class="fas fa-pen" style = "padding-left: 5mm;"></i></a></td>
                        <td><a href = "#" class = 'delete' id = '{{order.id}}' style = "color: #b30000;"><i class="fas fa-times" style = "padding-left: 6mm;"></i></a></td>
                    </tr>
                    {% endfor %}                   
                </table>
            </div>
        </div>

        <script>
            $(".delete").click(function() {
                var id = this.id; 
                $('#modelId').modal('show');
            });
        </script>

        <!-- Modal -->

        <div class="modal fade" id="modelId" tabindex="-1" role="dialog" aria-labelledby="modelTitleId" aria-hidden="true">
            <div class="modal-dialog modal-dialog-centered" role="document">
                <div class="modal-content">
                            <div class="modal-header">
                            <h5 class="modal-title">Delete</h5>
                        </div>
                    <div class="modal-body">
                        <div class="container-fluid">
                            <h4>Are you sure you want to delete this order?</h4>
                        </div>
                    </div>
                    <div class="modal-footer">
                        <button type="button" class="btn btn-secondary" data-dismiss="modal">No</button>
                        <a href ='#' ><button type="button" class="btn btn-danger">Yes</button></a>
                    </div>
                </div>
            </div>
        </div>

views.py


def createOrder(request):
    orderForm = OrderForm()

    if request.method == 'POST':

        form = OrderForm(request.POST)
        if form.is_valid():
            form.save()
            return redirect('/')

    context = {'form': orderForm}
    return render(request, 'accounts/order_form.html', context)

def updateOrder(request, pk):
    order = Order.objects.get(id = pk)
    orderForm = OrderForm(instance = order)

    if request.method == 'POST':

        form = OrderForm(request.POST, instance = order)
        if form.is_valid():
            form.save()
            return redirect('/')

    context = {'form': orderForm, 'update': True}
    print('Printing orderForm:',orderForm)
    return render(request, 'accounts/order_form.html', context)

def deleteOrder(request, pk):
    order = Order.objects.get(id = pk)

    order.delete()
    return redirect('/')

urls.py

from django.contrib import admin
from django.urls import path
from . import views

urlpatterns = [
    path('', views.home, name = 'home'),
    path('products/', views.products, name = 'products'),
    path('customer/<str:pk>/', views.customer, name = 'customer'),
    path('create_order/', views.createOrder, name = 'createOrder'),
    path('update_order/<str:pk>', views.updateOrder, name = 'updateOrder'),
    path('delete_order/<str:pk>', views.deleteOrder, name = 'deleteOrder')
]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...