Почему cleaned_data дает кодировку списка в виде строки? - PullRequest
0 голосов
/ 15 июля 2010

У меня есть поле, определенное так:

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, ничто не отображается. Как мне это исправить?

1 Ответ

2 голосов
/ 15 июля 2010

Nevermind.Придется убрать choices из конструктора виджета:

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

Я оставлю этот вопрос здесь на случай, если кто-нибудь еще почесает голову.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...