- No arquivo forms da app, criar um método chamado clean_nomeDoCampo, nesse método vai ser retornado uma função de join para transformar a lista dos items selecionaods em uma string
class UsuarioForm(BaseForm):
cursos = forms.MultipleChoiceField(widget=forms.CheckboxSelectMultiple(
attrs={'class': ''}), choices=CHOICE_CURSOS, required=False)
def clean_cursos(self):
return ','.join(self.cleaned_data['cursos'])
- No arquivo models da app, criar um método que vai ser retornado uma função de split, que irá transformar a string salva separada por vírgula em uma lista, essa lista será passada para o forms.
No init do mesma models, atribuir o valor dessa função ao valor do campo que está sendo usado no forms.
Exemplo do arquivo models:
class Usuario(Base):
cursos = models.CharField(max_length=300, blank=True, null=True)
def get_cursos(self):
return self.cursos.split(',')
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
if self.cursos:
self.cursos = self.get_cursos()
Renderização da lista
- No arquivo de listagem, usar o template tag list_to_string.