Python 如何确定django表单中的选项列表?

Python 如何确定django表单中的选项列表?,python,django,Python,Django,当我尝试运行服务器时,我得到一个错误,该错误显示意外的关键字参数“choices” COMMUNE_CHOICES=[ ('GOMBE','GOMBE'), ('BARUMBU','BARUMBU'), ('KINSHASA','KINSHASA'), ('LINGWALA','LINGWALA'), ('BANDALUNGUA','BANDALUNGUA'), ('MAKALA','MAKALA'), ('NGIRI NGIRI','NG

当我尝试运行服务器时,我得到一个错误,该错误显示意外的关键字参数“choices”

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()获得意外的关键字参数“choices”

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 )
实际上,没有
选项
,这是一个表单字段,因此它不处理如何在数据库中表示数据

您可能希望使用,并使用作为小部件(HTML表单中用于与用户对话的元素),方法是使用。您可以在虚拟环境中安装它,方法是:

$ pip install django-easy-select2
实际上,没有
选项
,这是一个表单字段,因此它不处理如何在数据库中表示数据

您可能希望使用,并使用作为小部件(HTML表单中用于与用户对话的元素),方法是使用。您可以在虚拟环境中安装它,方法是:

$ pip install django-easy-select2

只有名称中带有
Choice
的FormFields才有选择。CharField Choice仅适用于模型字段,不适用于表单字段您应该使用
forms.ChoiceField(choices=ANNEES\u EXPERIENCE)
而不是
forms.CharField(choices=ANNEES\u EXPERIENCE)
。只有名称中带有
Choice
的FormFields才有选择。CharField Choice仅适用于模型字段,不适用于forms fields您应该使用
forms.ChoiceField(choices=ANNEES\u EXPERIENCE)
而不是
forms.CharField(choices=ANNEES\u EXPERIENCE)