Как изменить атрибут модели в базе данных с помощью 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.