我有一個有限狀態機(django-fsm),它允許一個對象從源狀態轉換爲幾個目標狀態之一。我可以在字典添加的所有操作,如:以通用的方式獲取django表單中的點擊提交按鈕
ACTIONS { 'button_1': action1,
'button_2': action2,
...
}
這意味着在形式提交按鈕的每個狀態。
{% for n,m in object.get_available_current_state_transitions %}
<input type="submit" class="btn" value="{{ n|get_action|capfirst }}"
name="button_{{n}}" />
{%endfor%}
<input type="submit" class="btn primary" value="Save">
<a class="btn" onclick="javascript:history.go(-1)">Cancel</a>
這通常會導致超過3個按鈕。
點擊一個按鈕會產生一個特定的動作,在我的例子中定義在模型類中。
現在,我知道我可以在request.POST
字典點擊的按鈕,但是如果像這樣將導致級聯:
if 'button_1' in request.POST:
action_1()
elif 'button_2' in request.POST:
...
有沒有什麼辦法讓從單獨(理想情況下按下按鈕請求對象)在一個變量,所以我可以有類似的東西
ACTIONS[clicked_button_name](...)
?換句話說,有什麼方法可以獲得POST字典外部的點擊按鈕嗎? PS:我看過「多個按鈕」問題上的其他回覆,但都提供request.POST作爲答案。
我試圖避免的事情是雙重嵌套...我希望有另一種方式。 –
它看起來像我會有暫時使用相當於最後一段代碼的內容:)感謝前綴提示! –