2010-07-14 33 views
0

我有這樣定義一個字段:clean_data爲什麼給一個列表編碼作爲一個字符串?

service_types = CharField(widget=CheckboxSelectMultiple(choices=ServiceTypes), initial=[ServiceTypes.OPEN_TRANS]) 

我要「乾淨」它返回一個整數(選用的是編碼爲動力,以2的標誌):

def clean_service_types(self): 
    data = self.cleaned_data['service_types'] 
    return sum(map(int, data)) 

但它會引發錯誤,「無法將[轉換爲int」。原來data是:

u"[u'1', u'4', u'32']" 

...哦,剛剛發生,我認爲這可能是因爲它是一個CharField。但是,當我將其更改爲MultipleChoiceField時,不會呈現任何內容。我該如何解決?

回答

2

沒關係。必須將choices搬出部件構造:

MultipleChoiceField(widget=CheckboxSelectMultiple, choices=ServiceTypes, initial=[ServiceTypes.OPEN_TRANS]) 

我會離開這裏這個問題在其他情況下,任何一個撓着頭。

相關問題