Dire que j'ai des choix définis comme suit:Magasin django forms.MultipleChoiceField dans les modèles directement
choices = (('1','a'),
('2','b'),
('3','c'))
Et une forme qui rend ces valeurs et entrées dans un MultipleChoiceField,
class Form1(forms.Form):
field = forms.MultipleChoiceField(choices=choices)
Qu'est-ce que le droit façon de stocker field
dans un modèle.
Je peux bien sûr boucler le forms.cleaned_data['field']
et obtenir une valeur qui correspond à models.CommaSeperatedIntegerField
.
Encore une fois, chaque fois que je récupère ces valeurs, je vais devoir boucler et convertir en options.
Je pense qu'il y a une meilleure façon de le faire, car de cette façon, je suis en train de ré-implémenter la fonction que CommaSeperateIntegerField est censée faire.
Je pense qu'il serait plus approprié de sous-classer 'TextField', car un' CharField' attend l'argument max_length et un PostgreSQL 'INT []' non. –
@danilo Je ne sais pas pourquoi PostgreSQL INT est pertinent ici, car l'idée est de stocker des entiers séparés par des virgules dans un champ non-entier. Dans tous les cas, sous-classer TextField serait bien aussi. –
Désolé, j'ai apparemment mélangé deux différentes questions Stackoverflow. Mon point était - si quelqu'un veut stocker une liste dans un champ Postgres-'[-] [-] en créant un champ personnalisé, il devrait étendre' TextField' :) Mais ressemble à ce commentaire ne rentre pas ici. –