Проблемы со сменой статуса с «ожидает» на «отклонено/одобрено».Jquery

Программирование на jquery
Ответить
Anonymous
 Проблемы со сменой статуса с «ожидает» на «отклонено/одобрено».

Сообщение Anonymous »

Хорошо, я разработчик Django, но я также новичок
Я мало что знаю о js, но я пытался отправить данные, нажав кнопку
Проект касается одобрения или отклонения заказы на панели владельца магазина
В админке django все прошло хорошо, и я могу изменить это через интерфейс администратора, но я также хочу, чтобы он был удобен для пользователя, чтобы владелец магазина мог одобрить запрос, нажав кнопку «Одобрить» и отклонить его, нажав кнопку «Отмена».
В заключение я хочу создать логику, согласно которой всякий раз, когда владелец нажимает кнопку «Одобрить», ожидание в базе данных меняется на «Одобрено» и то же самое для «Отклонить».
Когда я нажимаю кнопку (отклонить или утвердить), появляется ошибка 405.
Мои представления.py:

Код: Выделить всё

def update_appointment_status(request: HttpRequest):
timeslice_id = request.GET.get('timeslice_id')        status = request.GET.get('status')        timeslice = get_object_or_404(TimeSlice, id=timeslice_id)
if status == 'approve':       timeslice.approve()
elif status == 'refuse':            timeslice.refuse()
return JsonResponse({'success': True})
Мои js-коды:

Код: Выделить всё

$(document).ready(function() {
    // Approve button click handler
    $('.approve-btn').click(function(event) {
        event.preventDefault();
        var timesliceId = $(this).data('id');
        $.ajax({
            url: '/approve/',  // Adjust the URL to your specific endpoint
            type: 'POST',
            data: {
                'timeslice_id': timesliceId,
                'csrfmiddlewaretoken': $('input[name="csrfmiddlewaretoken"]').val()
            },
            success: function(response) {
                alert('Appointment approved.');
                location.reload();
            },
            error: function(xhr, status, error) {
                alert('Error: ' + error);
            }
        });
    });

    // Refuse button click handler
    $('.refuse-btn').click(function(event) {
        event.preventDefault();
        var timesliceId = $(this).data('id');
        $.ajax({
            url: '/refuse/',  // Adjust the URL to your specific endpoint
            type: 'POST',
            data: {
                'timeslice_id': timesliceId,
                'csrfmiddlewaretoken': $('input[name="csrfmiddlewaretoken"]').val()
            },
            success: function(response) {
                alert('Appointment refused.');
                location.reload();
            },
            error: function(xhr, status, error) {
                alert('Error: ' + error);
            }
        });
    });
});
Мои шаблоны:

Код: Выделить всё

 {% for slice in time_slices %}
    {% if slice.business_line == barber %}
        [*]
            {{ slice.start_time }} - {{ slice.end_time }}
            
State: {{ slice.get_appointment_state_display }}
            
                {% csrf_token %}
                
                Approve
                Refuse
            
       
    {% endif %}
{% endfor %}
Я также отправляю данные в форме скрытого целочисленного поля.

Подробнее здесь: https://stackoverflow.com/questions/787 ... d-approved
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Jquery»