Django - 选择集,但没有下拉形式

时间:2016-10-10 12:17:12

标签: python django django-forms django-crispy-forms

我想在我的模型中设置一个模板和验证选项。

但是,在该模型的model.form中,我想只有一个整数字段。

如何更改窗口小部件才能获得InputField?

我尝试将小部件更改为forms.Model,但这似乎不起作用。我收到一个错误:

'IntegerField' object has no attribute 'attrs'

forms.py:

class KombiPublikationForm(forms.ModelForm):

    class Meta:
        model = KombiPublikation
        #fields = []
        exclude = ['pub_sprache']
        widgets = {
            'monat': forms.IntegerField(), # does not work
        }

model.py:

MONTH = (
    (1, 'Januar'),
    (2, 'Februar'),
    (3, 'März'),
    (4, 'April'),
    (5, 'Mai'),
    (6, 'Juni'),
    (7, 'Juli'),
    (8, 'August'),
    (9, 'September'),
    (10, 'Oktober'),
    (11, 'November'),
    (12, 'Dezember'),
)

class KombiPublikation(models.Model):
    [...]
    monat = models.IntegerField(choices=MONTH)

谢谢!

2 个答案:

答案 0 :(得分:0)

我找到了解决方案 - NumberInput()是正确的小部件。

答案 1 :(得分:0)

from django.utils.dates import MONTHS

choices=MONTHS.items()