我仍然在Django初學者和我有問題,使一些工作:Django的:在一個表單字段限制不適用
在從,我有一個字段是一個整數和價值可以是[0 | 1 | 2]。
所以我做了這樣一個工作的東西:
front = forms.IntegerField(label=_('quantity'), initial='', min_value=0, max_value=2)
這工作正常,如果域中包含其他值,Django的提交之後觸發一個錯誤。
,因爲我需要經常使用的那種場,我犯了一個類的話,那就是:
class Quarter(forms.IntegerField):
def __init__(self, val='', min=0,max=2):
super(forms.IntegerField, self).__init__()
self.initial = val
self.min_value = min
self.max_value = max
self.required = True
self.error_messages = {'required': 'This field is required',
'max_value': 'number is too high',
'min_value': 'number is too low',
'invalid': 'Enter a valid number'}
而且,在我的課,我這樣稱呼它:
rear = Quarter()
或
默認參數應該(我認爲)限制後方可以接收的值的範圍。
但是,如果我在後場輸入任何值,Django接受它們全部,當它拒絕它的前面一個。
不應該這個代碼工作,通常? 你能指出我的錯誤,並幫助我使它正常工作嗎?
謝謝。
我很抱歉,但我有這個: __init __()得到了一個意外的關鍵字參數'min_value' – Yves
對不起,你應該在Quarter上調用super而不是IntegerField。糾正。 –
@Daniel:關鍵字參數必須在列表參數後發送,所以*參數必須是方法的第一個參數,我錯了嗎?我認爲這會導致Yves提到的錯誤。 – albar