当我尝试运行服务器时,出现错误消息,提示意外的关键字参数“选择”
COMMUNE_CHOICES=[
('GOMBE','GOMBE'),
('BARUMBU','BARUMBU'),
('KINSHASA','KINSHASA'),
('LINGWALA','LINGWALA'),
('BANDALUNGUA','BANDALUNGUA'),
('MAKALA','MAKALA'),
('NGIRI NGIRI','NGIRI NGIRI'),
('KASA VUBU','KASA VUBU'),
('KALAMU','KALAMU'),
('LEMBA','LEMBA'),
('MATETE','MATETE'),
('NGABA','NGABA'),
('LIMETE','LIMETE'),
('MALUKU','MALUKU'),
('NSELE','NSELE'),
('MASINA','MASINA'),
('NDJILI','NDJILI'),
('KIMBANSEKE','KIMBANSEKE'),
('KISENSO','KISENSO'),
('NGALIEMA','NGALIEMA'),
('MONT NGAFULA','MONT NGAFULA'),
('KITAMBO','KITAMBO'),
('SELEMBAO','SELEMBAO'),
('BUMBU','BUMBU'),
]
TYPE_SERVICE=[
('Transport de fonds','Transport de fonds'),
('Comptage et conditionnement de fonds','Comptage et conditionnement de fonds'),
('Conditionnement comptage et transport de fonds','Conditionnement - comptage et transport de fonds')
]
TYPE_SERVICE_MENSUEL=[
('Conditionnement comptage et transport de fonds','Conditionnement - comptage et transport de fonds')
]
TYPE_FACTURATION=[
('Offre ponctuelle','Offre ponctuelle'),
('Offre mensuelle','Offre mensuelle')
]
ANNEES_EXPERIENCE = (
('1 À 5 ANS','1 À 5 ANS'),
('6 À 10 ANS','6 À 10 ANS'),
('11 À 15 ANS','11 À 15 ANS'),
('16 À 20 ANS','16 À 20 ANS'),
('PLUS DE 20 ANS','PLUS DE 20 ANS'),
)
MULTINATIONAL = (
('OUI','OUI'),
('NON','NON'),
)
class EscorteForm(forms.Form):
montant_dollars = forms.IntegerField(label='Montant en dollars', min_value=0)
montant_franc = forms.IntegerField(label='Montant en franc congolais', min_value=0)
taux_jour = forms.IntegerField(label='Taux du jour', min_value=920)
zone = forms.MultipleChoiceField(choices=COMMUNE_CHOICES, widget=forms.SelectMultiple())
type_service = forms.ChoiceField(choices=TYPE_SERVICE, widget=forms.RadioSelect(attrs={'class': 'check_type_service',}))
multinational = forms.ChoiceField(choices=MULTINATIONAL, widget=forms.RadioSelect(attrs={'class': 'check_type_service',}))
annees_experience = forms.CharField(choices=ANNEES_EXPERIENCE )
TypeError: init ()获得了意外的关键字参数“选择”
答案 0 :(得分:0)
CharField
[Django-doc]确实没有choices
,这是一个 form 字段,因此它不会处理您如何表示数据库中的数据>。
您可能想使用ChoiceField
[Django-doc],并使用django-easy-select2
[PyPi]并将其用作 widget (HTML表单中用于与用户对话的元素)。 。您可以使用以下方法将其安装在虚拟环境中:
$ pip install django-easy-select2
然后我们可以使用Select2
小部件:
from easy_select2.widgets import Select2
class EscorteForm(forms.Form):
montant_dollars = forms.IntegerField(label='Montant en dollars', min_value=0)
montant_franc = forms.IntegerField(label='Montant en franc congolais', min_value=0)
taux_jour = forms.IntegerField(label='Taux du jour', min_value=920)
zone = forms.MultipleChoiceField(choices=COMMUNE_CHOICES, widget=forms.SelectMultiple())
type_service = forms.ChoiceField(
choices=TYPE_SERVICE,
widget=forms.RadioSelect(attrs={'class': 'check_type_service',})
)
multinational = forms.ChoiceField(
choices=MULTINATIONAL,
widget=forms.RadioSelect(attrs={'class': 'check_type_service',})
)
annees_experience = forms.ChoiceField(
choices=ANNEES_EXPERIENCE,
widget=Select2()
)