Как изменить атрибут модели в базе данных с помощью ajax в django?

Я создал сообщения реального времени в своем проекте, используя AJAX. Я ссылаюсь на этот учебник, https://youtu.be/IpAk1Eu52GU

Ниже приведен код функции.

view_questions.html

{%block content%}
<h2>{{meeting_id}} - Panelist Review Question</h2>
<div id="display">
                
</div>

<script>
$(document).ready(function(){

setInterval(function(){
    $.ajax({
        type: 'GET',
        url : "/panelist/getMessages/{{meeting_id}}/",
        success: function(response){
            console.log(response);
            $("#display").empty();
            for (var key in response.questions)
            {
                var temp="<div class='container darker'><b>"+response.questions[key].shareholder_id +
                    "</b>"+"<br><b>"+response.questions[key].sharehold_name + "</b><p>" + response.questions[key].question_id + "</p>"+
                    "<p>"+response.questions[key].question +
                    "</p><span class='time-left'>"+response.questions[key].date_created+
                    "</span><input type='submit' name='filter_btn' class='btn btn-primary' value='Filtered' /></div>";
                $("#display").append(temp);
            }
        },
        error: function(response){
            alert('An error occured')
        }
    });
},1000);
})
</script>
{% endblock %}
</body>

views.py

def getMessages(request, meeting_id):
    meeting = Meetings.objects.get(meeting_id=meeting_id)
    questions = Questions.objects.filter(meetings_id=meeting)
    
    shareholder = []
    for i in questions:
        shareholder.append(
            {
            "question_id": i.question_id,
            "question" : i.question,
            "date_created": i.date_created,
            "shareholder_id": i.shareholders.shareholder_mykad,
            "sharehold_name": i.shareholders.shareholder_name,
            }
        )
    # print(list(shareholder))
    return JsonResponse({"questions":list(shareholder)})

def questionsView(request,  meeting_id):
    context = {'meeting_id':meeting_id}
    return render(request, 'view_question.html', context)

models.py

class Questions(models.Model):
    question_id = models.AutoField(primary_key=True)
    question = models.CharField(max_length=400, null=True)
    is_filtered = models.BooleanField(default=False)
    meetings = models.ForeignKey(Meetings, on_delete=CASCADE, related_name='questionMeeting')
    shareholders = models.ForeignKey(AuthenticationShareholders, on_delete=CASCADE, related_name='questionShareholder')
    date_created = models.DateTimeField(default=timezone.now, null=True)


    def __str__(self):
        return str(self.meetings)

Чат реального времени работает, но проблема в том, что я хочу создать кнопку, которая позволит пользователю фильтровать сообщения реального времени, нажав на кнопку Filter, которая будет доступна на каждом сообщении. Идея заключается в том, что я хочу изменить is_filtered=True в базе данных, когда пользователь нажимает на кнопку Filter и изменить значение кнопки на Filtered.

Моя идея заключается в том, что я планирую использовать метод POST Ajax для перехода к url, который будет обрабатывать бэкенд в views.py. Но я не знаю, как передать question_id в POST Ajax, потому что содержимое сообщения берется из данных ответа, который я сделал в моем views.py.

Как мне решить эту проблему? Я новичок в Django и Ajax.

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