我正在尝试从我的Django表单中获取RadioSelectBox值到我的模板与javascript部分。但是我没有克服这个变量并把它放在我的模板中。
我有一个非常简单的形式:
def ChoiceTheme(request) :
if request.method == 'POST':
form = ThemeForm(request.POST or None)
if form.is_valid():
theme = form.instance.favorite_theme
print theme
post = form.save()
return HttpResponseRedirect(reverse('accueil'), {"theme":theme})
else:
form = ThemeForm()
context = {
"form":form,
}
return render(request, 'Theme.html', context)
我使用print theme
获得了良好的字段值。
但我想将此变量放在我的html模板中:
{% block content %}
<style>
ul li {
list-style: none;
}
</style>
<div class = "col-sm-8">
<form class = "form" method='POST' action=''> {% csrf_token %}
<h3> <span class="glyphicon glyphicon-file"></span> Choix du thème DatasystemsEC </h3>
<br></br>
{{ form }}
<br></br>
<button> Valider le thème </button>
<script>
theme = "{{ }}"
$(function() {
$('button').click(function() {
alert("Vous avez choisi le thème : " + theme);
});
})(jQuery);
</script>
</form>
</div>
{% endblock content %}
我有theme = {{ theme }}
,但我的警报窗口只显示:
你知道吗?我在这一点上非常狡猾,因为我没有看到这种方式......Vous avez choisilethème:
答案 0 :(得分:0)
要在django中提取主题选项,您必须执行类似于此的ajax请求:
$(function() {
$('form').submit(function (event) {
event.preventDefault();
$.ajax({
url: "/choicetheme",
data: $('form').serialize(),
type: 'post',
success: function (data) {
alert(data.theme);
}
});
});
})(jQuery)
但是你也可以在javascript中将它发送到django之前提取选项,但是你需要知道IE中你选择主题的选项元素中的元素。