So I have an AJAX command, which passes information to a views.py method (I have verified that the passing works from the HTML->urls.py->views.py, so that's all good), but once I have it in "views.py", I have no idea how to get it to update in the database itself.
I have tried to avoid using a forms.py file if possible, but if that is the only option I'll bend to it.
The AJAX function is as follows:
$.ajax({
url : '/perform/acts/update/{{ act.id }}/',
type : "POST",
data : {
'csrfmiddlewaretoken' : "{{ csrf_token }}",
furtherData : furtherData
},
success : function(result) {}
});
def update_act(request, furtherData_id):
if request.method == 'POST':
?
return HttpResponse(?)
Your view function:
def my_view_action(request, any_pk_id):
from django.http import JsonResponse
if request.method=='POST' and request.is_ajax():
try:
obj = MyModel.objects.get(pk=any_pk_id)
obj.data_attr = request.POST['attr_name']
obj.save()
return JsonResponse({'result': 'save successfully'})
except MyModel.DoesNotExist:
return JsonResponse({'error': 'Object does not exist'})
else:
return JsonResponse({'result':'Not a valid request'}
For more info
https://docs.djangoproject.com/en/1.10/topics/forms/modelforms/#the-save-method