我試圖將一個整數參數Field.choices傳遞給view.py中的函數。但是,我似乎無法完成這項工作。未能將Field.choices整數參數傳遞給view.py中的函數(Django)
具體來說,就我而言,我想使用Field.choices整數參數來決定用戶希望某個特定對象切換到哪個狀態。目前,我對每種類型的狀態變化都有查看功能,而且它們都是相同的。所以,這個目標是傾向於更乾的代碼。
示例情況
下面是一些HTML代碼(其具有訪問診斷和diagnostic_filter對象):
<a href="{%
url reports.views.mark
diagnostic.id,
diagnostic_filter.FALSE %}"
class="btn">
False Positive
</a>
最初,這種類型的按鈕/鏈接的用戶點擊。
我想通過整數diagnostic_filter.FALSE(這是diagnostic_filter的三種可能狀態之一),以一個廣義的「標記」功能:
def mark(request, diagnostic_id, state):
#Code to change state...
該「標記」的功能,如圖所示,應通過並將診斷過濾器對象(與診斷對象相關)的狀態更改爲FALSE。
這是我在urlconf.py相應行的嘗試:
url(r'^diagnostic/(?P<diagnostic_id>\d+)/(?P<state>\d+)/$', 'mark'),
這裏是我的models.py我diagnostic_filter級車型:
class DiagnosticFilter(models.Model):
FALSE = 1
LOW = 2
HIGH = 3
STATES = (
(FALSE, 'False Positive'),
(LOW, 'Low Priority'),
(HIGH, 'High Priority'),
)
state = models.IntegerField(choices=STATES)
我傳遞的診斷和diagnostic_filter我的模板使用:
return render_to_response(
'reports/diagnostic.html',
{diagnostic,
diagnostic_filter},
context_instance=RequestContext(request)
)
這是最好的解決方法?我做錯了什麼?看起來,當我用按鈕加載頁面時,我在行中找到了一個錯誤,該行沒有找到'[FILE URL HERE] .mark'參數'(108383,Undefined)'和關鍵字參數'{}'。
我的模板絕對有權訪問diagnostic_filter。我已經在我的模板中成功使用了很長一段時間,昨天在發佈問題之前,雙重檢查了diagnostic_filter.FALSE的值爲1.我通過插入
{{diagnostic_filter.FALSE}}
來實現此目的。請回顧一下我的問題,看看我是如何傳遞diagnostic_filter的。乾杯。 – Akyidrian 2013-02-18 19:00:04忽略我最近的評論。偶爾發現diagnostic_filter未定義。這是有意完成的(換句話說,這是一個只在實現代碼中發現的設計決策)。謝謝你的時間。 – Akyidrian 2013-02-19 03:53:58