所以我有一个AJAX命令,它将信息传递给一个views.py方法(我已经验证了传递工作来自HTML-> urls.py-> views.py,所以这一切都很好),但是一旦我在“views.py”中获得它,我就不知道如何在数据库中更新它。
如果可能的话,我试图避免使用forms.py文件,但如果这是我唯一可以选择的选项。
AJAX功能如下:
$.ajax({
url : '/perform/acts/update/{{ act.id }}/',
type : "POST",
data : {
'csrfmiddlewaretoken' : "{{ csrf_token }}",
furtherData : furtherData
},
success : function(result) {}
});
views.py函数是......到目前为止,缺少,至少可以说,但这是我丢失的地方:
def update_act(request, furtherData_id):
if request.method == 'POST':
?
return HttpResponse(?)
这样做的一个重要原因是无需重新加载即可执行更新,而无需添加其他模块。我一直在使用Django只有几个星期,所以我可能很容易忘记...
非常感谢任何帮助!
答案 0 :(得分:4)
def update_act(request,furtherData_id):
from django.http import JsonResponse
if request.method == 'POST':
obj=MyObj.objects.get(pk=furtherData_id)
obj.data=request.POST['furtherData']
obj.save()
return JsonResponse({'result':'ok'})
else:
return JsonResponse({'result':'nok'}
答案 1 :(得分:1)
您的观看功能:
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({'status':'Success', 'msg': 'save successfully'})
except MyModel.DoesNotExist:
return JsonResponse({'status':'Fail', 'msg': 'Object does not exist'})
else:
return JsonResponse({'status':'Fail', 'msg':'Not a valid request'}
此功能直接在数据库中保存数据,为了验证它首先使用表格,然后继续保存操作。
--- ---步骤
- 为模型创建表单 - 通过请求/对象填写此模型的数据 - 在表单上运行验证,然后通过表单或模型保存到数据库。
了解更多信息 https://docs.djangoproject.com/en/1.10/topics/forms/modelforms/#the-save-method