我想將調查表格內部頁面上出現的jQuery UI slider的值發佈到Django SessionWizardView。我對JavaScript和jQuery相當陌生,但對Python 2.7.3/Django 1.6.2有一些經驗。如何在Django視圖中POST和捕獲jQuery ui-slider輸出值?
問題:如何通過POST在Django視圖中發送和捕獲從jQuery ui-slider發送的數據?
aditional的問題/信息
- I have been having an issue with CSRF validation which may be the root cause of the issue.
- 有,我應該使用一個特定的方法是什麼?
- 我在下面採取的步驟中缺少什麼?
wizard_form.html
我有一個jQuery UI的滑塊從a tutorial by Thoriq Firdaus採用。這出現在我的SessionWizardView內部頁面上。
<form action="" method="post">{% csrf_token %}
<table>
{{ wizard.management_form }}
{% if wizard.form.forms %}
{{ wizard.form.management_form }}
{% for form in wizard.form.forms %}
{{ form }}
{% endfor %}
{% else %}
{{ wizard.form }}
{% endif %}
</table>
{% load staticfiles %}
{% if 'surveyone' in request.path %}
{% if wizard.steps.current in steps %}
<img src="{% static "survey/images/pathone/" %}{{display_image}}" height="600" width="500" style="border:1px solid black;" align="middle"/>
<section>
<span class="tooltip"></span>
<div id="slider"></div>
<span class="volume"></span>
</section>
/my_project/src/survey/static/survey/js/slider.js
這是我slider.js代碼中的相關部分。我正在嘗試使用jQuery.post將value
發佈到我的Django視圖。
slide: function (event, ui) {
var value = slider.slider('value'),
volume = $('.volume');
console.log(value)
$.post("/surveyone/", {value : value, csrfmiddlewaretoken : '{{csrf_token}}' });
},
/my_project/src/survey/views.py
這是我SessionWizardView包含get_context_data
和done
方法,兩種方法的正常工作。我的問題是我不確定如何'接收'發佈的數據。
我已經通過窗體嚮導文檔閱讀,但沒有站出來,最接近的就是render(self, form=None, **kwargs):
方法,但認爲它應該被使用的「GET後或POST請求已處理」
class SurveyWizardOne(SessionWizardView):
def get_context_data(self, form, **kwargs):
context = super(SurveyWizardOne, self).get_context_data(form, **kwargs)
if self.steps.current in ['5','6','7','8','9','10','11','12','13','14','15','16']:
step = int(self.steps.current)
if step in (5, 6, 7):
image = random.choice(PATH_ONE_IMAGES)
images.insert(step - 5, image)
PATH_ONE_IMAGES.remove(image)
context['display_image'] = image
elif step == 8:
context['first_image'] = images[0]
context['second_image'] = images[1]
context['third_image'] = images[2]
elif step in (9, 10, 11):
image = random.choice(PATH_ONE_IMAGES)
images.insert(step - 6, image)
PATH_ONE_IMAGES.remove(image)
context['display_image'] = image
elif step == 12:
context['fourth_image'] = images[3]
context['fifth_image'] = images[4]
context['sixth_image'] = images[5]
steps = ['5','6','7','9','10','11']
dv_steps = ['8','12']
context.update({'steps': steps,
'dv_steps': dv_steps
})
def done(self, form_list, **kwargs):
return render(self.request, 'Return_to_AMT.html', {
'form_data': [form.cleaned_data for form in form_list],
})
所以實質上,我不確定接下來要做什麼/嘗試。任何人都可以提供任何提示或提示嗎?
這js小提琴可以幫助您與前端js代碼。 http://jsfiddle.net/bU6EV/12/ – 2014-10-13 20:17:42