我有一個很長的formset顯示在頁面上。這是目前保存像這樣:如何使用jQuery自動保存django視圖?
if request.method == 'POST':
survey_formset = SurveyFormset(request.POST)
if survey_formset.is_valid():
ss = SurveySet()
ss.user=request.user
ss.save()
for form in survey_formset.forms:
saved = form.save(commit=False)
saved.surveyset = ss
saved.save()
return HttpResponseRedirect('/')
我怎樣才能使它所以整個surveyset獲取每個用戶在另一個輸入填充時間保存在後臺?
到目前爲止,這是我迄今爲止。我如何使用回調通過AJAX將內容發送到服務器?
<form action="" method="POST" id="surveyset">{% csrf_token %}
{{ survey_formset.management_form|crispy }}
<!-- A lot of inputs! -->
{% for form in survey_formset.forms %}
<hr>
<div id="survey-{{ forloop.counter }}" class='content'>
{% crispy form %}
</div>
{% endfor %}
<input id='save_set' type="submit" value="Submit" class='button' />
</form>
<!-- Time to autosave! -->
<script type="text/javascript" src="{% static "js/jquery.autosave.js" %}"></script>
<script>
$(document).ready(function() {
$("form").autosave({
callbacks: {
trigger: ["change", function() {
var self = this;
$("#save_set").click(function() {
self.save();
});
}],
save: {
method: "ajax",
// What do I tell the django view?
// How do I silently save in the background?
options: {
success: function() {
console.log("saved!");
}
}
}
}
});
});
</script>
我用這傢伙代碼:
https://github.com/nervetattoo/jquery-autosave
您可能希望保存表單的子集。更多關於這裏https://docs.djangoproject.com/en/1。7/topics/forms/modelforms /#the-save-method – Anup
我想我想在這裏添加幾行:'save:{ method:「ajax」, options:{ success:function(){ console .LOG( 「得救了!」); } } }'讓我所有的POST數據在後臺處理。但我只想創建一個新的測量集。 – broinjc
那就是你想保存用戶輸入的所有數據?如果是這樣的話,那就是save comimit = False可以用來保存部分模型 – Anup