我有一个下拉的标题选择,选择特定的标题后,将执行一个操作。
我所拥有的:
form.py
class CronForm(forms.Form):
title = forms.ModelChoiceField(queryset=GlobalFID.objects.all().order_by('-title_date'), widget=forms.Select(attrs={"onChange":'change_title()'}))
view.py [title_change_view]
my_form = CronForm() #initial=data
return render(request, 'research/title_result.html',{"my_form":my_form})
html
<form method="post" >
{% csrf_token %}
{{ my_form }}
</form>
并在js端:
function change_title()
{
var murl= "{% url 'title_change_view' %}";
window.location = murl;
}
我的目标是在视图title_change_view中具有{{my_form}}中的SELECTED标题。重定向有效时,我无法获得所选值。
我考虑/尝试过的策略:
我在title_change_view中添加了if request.method == 'POST':
,但它不是帖子(因此忽略了它),所以我看不懂表格。
var murl= "{% url 'title_change_view' %}";
添加其他参数?title=[SELCTED_VALUE]
,但无法弄清楚如何将SELECTED标题添加到murl或change_title()函数中。
有什么主意吗?
答案 0 :(得分:1)
这根本不是正确的方法。重定向浏览器将永远不会提交任何数据。您需要实际发布它;就您而言,您只需提交表格即可。
<form id="my_form" method="post" action="{% url 'title_change_view' %}">
{% csrf_token %}
{{ my_form }}
</form>
...
function change_title() {
document.getElementById('my_form').submit();
}