Django POST JSON из фронтенда в JSON-поле
для начала то, что я хочу/нужно: когда я нажимаю на кнопку на фронтенде, он регистрирует JSON, который выводит в мою базу данных.
У меня есть функция в моем шаблоне, которая выводит JSON в виде строки при нажатии на мой шаблон.
<script>
const form = document.getElementById("myValue").addEventListener("click", myFunction);
function myFunction() {
let myValues = {
"posX": pos.x,
"posY": pos.y,
"posZ": pos.z,
"anAZ": anAZ,
"anPo": anPo,
}
var myJSON = JSON.stringify(myValues)
console.log(myJSON)
console.log(typeof(myJSON));
// Console outputs the values.
$.ajax({
type: 'POST',
data: $('#form').serialize(),
dataType: 'json',
success: function(data) {
if (data.msg === 'Success') {
alert('Values are Saved')
}
}
})
}
и в файле template.html:
<button id="myValue">Save Values<form id="form" method="post">{% csrf_token %} </button>
на models.py:
class myJSON(models.Model)
myValue = models.JSONField(default=dict, null=True)
form.py:
class myValuesForm(ModelForm):
class Meta:
model = myJSON
fields = [
"myValue"
]
на views.py
def myVal(request, pk):
values = myJSON.objects.get(id=pk)
if request.is_ajax():
form = myValuesForm(request.POST)
if form.is_valid():
form.save
return JsonResponse({
'msg': 'Success'
})
Я не уверен, что не так и почему он не записывает данные. Я не получаю никаких ошибок в терминале. помощь в этом будет очень кстати...