Django Model Form Integer as Drop Down

В моем проекте есть простая модельная форма следующего вида:

class InviteForm(forms.ModelForm):
    class Meta:
        model = Invite
        fields = ['max_guests', 'rsvp_guests', 'rsvp_attendance']

Max Гости - это просто целое число, и оно появляется для ввода пользователем. Поскольку значение всегда маленькое (<10), я бы хотел, чтобы вместо этого был выпадающий список со всеми значениями 0-max.

Существует ли способ перезаписать целочисленный вход как таковой?

Вы можете использовать ChoiceField как

class InviteForm(forms.ModelForm):
    MAX_GUESTS = (
            ('0', '0'),
            ('1', '1'),
            ('2', '2'),
            ('3', '3'),
            ('4', '4'),
            ('5', '5'),
            ('6', '6'),
            ('7', '7'),
            ('8', '8'),
            ('9', '9'),
            ('10', '10'),
            )
    max_guests = forms.ChoiceField(choices=MAX_GUESTS)
    class Meta:
        model = Invite
        fields = ['max_guests', 'rsvp_guests', 'rsvp_attendance']
        
Вернуться на верх