Jquery 如何通过ajax填充表单以更新模型?
我试图在页面上加载一个空白表单(表单隐藏),并在用户单击jobnum按钮时填充并显示它 据我所知,在阅读时,我需要在呈现表单时传递主键,但当然,在用户单击按钮之前,我无法传递主键。但是我需要在页面加载时呈现表单,这样显然它就不会有与之关联的pk,因为用户还没有单击按钮 我可以通过以下jquery和view.py传递我的信息来获得pk:Jquery 如何通过ajax填充表单以更新模型?,jquery,python,ajax,django,Jquery,Python,Ajax,Django,我试图在页面上加载一个空白表单(表单隐藏),并在用户单击jobnum按钮时填充并显示它 据我所知,在阅读时,我需要在呈现表单时传递主键,但当然,在用户单击按钮之前,我无法传递主键。但是我需要在页面加载时呈现表单,这样显然它就不会有与之关联的pk,因为用户还没有单击按钮 我可以通过以下jquery和view.py传递我的信息来获得pk: $('#editjob').click(function(){ var a = document.getElementById('jobNum').tex
$('#editjob').click(function(){
var a = document.getElementById('jobNum').textContent
$.ajax({
url: "editjob",
data: {'jobnum':a},
success: function(data) {
alert(data);
// $(".mydiv").append(data);
},
});
});
def editjob(request):
if request.is_ajax():
jobnum = request.GET.get('jobnum')
job_list = Job.objects.filter(jobnum=jobnum)
json_data = serializers.serialize('json', job_list)
a = json.loads(json_data)
a = a[0]['pk'] #that's our pk!
return JsonResponse(a,safe=False)
这只是用pk提醒我
然后我想我需要做这样的事情:
j = Job.objects.get(pk=a)
editJobForm = JobForm(request.POST or None, prefix='edit',instance=j)
if editJobForm.is_valid():
frm_jobnum = editJobForm.cleaned_data.get("jobnum")
frm_pm = editJobForm.cleaned_data.get("pm")
# other clean data's redacted
instance = editJobForm.save()
instance.save()
当然,问题是我不能将“editJobForm”传递到上下文中,然后在我的主页上呈现它,因为当页面第一次加载时,用户不会单击触发ajax请求的按钮,该请求会获得必要的pk
我尝试的另一个尝试是在表单自己的页面editjob.html
中呈现表单,然后将其包含在我的主页中。在我保存的文件中:
123
{{editJobForm}}
123
如果我转到它的url,正好是jobs/editjob。它正确地呈现123(实际形式)123。(但前提是我通过了一个已知的pk,而不是我眼中的ajaxed pk)
然后当我尝试{%include“editjob.html”%}
时,它只包括“123”
我不想通过我的第二种方法来处理这个问题,因为它对其他人来说似乎很混乱和不清楚。你应该先编辑并发布一个问题……不知何故,在我完成之前,我意外地发布了它。我现在完成了。你应该先编辑并发布一个问题……不知何故,在我完成之前,我意外地发布了它。我现在做完了。