Как я могу отправить значение HTML-элемента в базу данных MySQL в Django с помощью Ajax (без использования формы)
Я новичок в Django и в настоящее время сталкиваюсь с проблемой размещения данных html-тегов в базе данных.
tables.html
<div class="containers pt-5 pb-3 px-4 py-4">
<input type='hidden' name='csrfmiddlewaretoken' value='{{ csrf_token }}' />
<div class="d-none">
<p>User ID: </p><p class="user-id">{{id}}</p>
</div>
<h3>Case Number:</h3><h2 id="number"></h2>
<h4>Description:</h4>
<p class="mb-5" id="display"></p>
<div class="button d-inline-block" style="max-width: 50%;">
<button type="submit" id="pick" class=" pick-button btn btn-outline-primary border-radius-lg p-3">Pick Case</button>
</div>
<div class="d-inline-block float-lg-end" style="max-width: 50%;">
<button class="btn btn-outline-danger border-radius-lg p-3">Close</button>
</div>
</div>
<script>
$("#pick").click(function(){
var user = $('.user-id').text();
var ca = $('#number').text();
ca = $.trim(ca);
$.ajax({
type:"POST",
url:"{% url 'dashboard:pick_case' %}",
data:{
user_id:user,
case_id:ca,
csrfmiddlewaretoken: '{{ csrf_token }}'
},
success:function(data){
alert(data);
}
});
});
</script>
Views.py
def pick_view(request):
if request.method == 'POST':
case_id = request.POST.get('case_id')
print(case_id)
status = 2
picked = Transaction()
picked.Case_ID = case_id
picked.Status = status
picked.save()
return HttpResponse("Case Picked Successfuly!")
else:
return HttpResponse("POST ERROR")
urls.py
urlpatterns = [
path('dashboard', views.dashboard_view, name='dashboard_view'),
path('tables', views.case_view, name='case_view'),
path('tables', views.pick_view, name='pick_case'),
]
models.py
class Transaction(models.Model): ### Case Progress Table
Case_ID = models.ForeignKey(CaseTable, on_delete=models.CASCADE)
Status = models.ForeignKey(Status, on_delete=models.CASCADE)
Date_Time = models.DateTimeField(default=timezone.now)
Я попробовал вышеприведенный код и я могу получить данные из HTML тегов, но не могу сохранить в базе данных.
Пожалуйста, помогите!!!