'form' 的值必须继承自 'BaseModelForm'

int*_*lis 2 python django django-models django-admin python-3.x

我试图将动态选择字段添加到 adimin 表单,但出现错误:

The value of 'form' must inherit from 'BaseModelForm'.
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

(admin.py 的一部分)

class ReservationForm(forms.Form):

    class Meta:
        model = Reservation

    def __init__(self,*args, **kwargs):
        super(ReservationForm, self).__init__(*args, **kwargs)

        if not self.request.user.is_superuser:
            self.fields['status'] = forms.ChoiceField(STATUS_CHOICES = ( (PENDING,'Pending'),(APPROVED, 'Approved'), (CANCELED, 'Canceled') ))

# Reservation

class ReservationAdmin(admin.ModelAdmin):
    form = ReservationForm
Run Code Online (Sandbox Code Playgroud)

Sel*_*cuk 5

ReservationForm没有扩展BaseModelForm或其任何子类。将其更改为:

class ReservationForm(forms.ModelForm):
Run Code Online (Sandbox Code Playgroud)