Shang Wang
Shang Wang

Reputation: 25559

django form: ModelForm has no model class specified

I am working on an existing project and I wanna add a django form to a page. The application is called wireless, and under wireless directory I have forms.py, with some code like:

from django import forms    
class WirelessScanForm(forms.ModelForm):
        time = forms.DateTimeField(label='When', widget=AdminSplitDateTime())
        prob = forms.ChoiceField(choices=[x.sniffer.plug_ip for x in
                         SurveyRouterSniffer.objects.all()])

In views.py I do the following:

from wireless import forms

form = forms.WirelessScanForm()
return render_response(request, 'wireless/crack.html',
            { 'scheduledScans' : scheduledScans,
              'form': form})

I'm very new to django so any help would be thankful.

Upvotes: 1

Views: 13038

Answers (2)

rockingskier
rockingskier

Reputation: 9346

You need to add a Meta class to your forms.ModelForm specifying which model to base the format on.

https://docs.djangoproject.com/en/dev/topics/forms/modelforms/#django.forms.ModelForm

class WirelessScanForm(ModelForm):
    class Meta:
        model = WirelessScan

Upvotes: 3

Daniel Roseman
Daniel Roseman

Reputation: 600059

I don't really know how the error could be any clearer. For a modelform, you need to specify a model class.

If this isn't a form based on a model, don't inherit from forms.ModelForm, just use an ordinary forms.Form.

Upvotes: 12

Related Questions