Reputation: 11064
I am trying to do a html5 form in Django and Crispy forms, but I get TypeError: __init__() got an unexpected keyword argument 'instance'
:
forms.py
from crispy_forms.helper import FormHelper
from crispy_forms.layout import Submit
from django import forms
class ShareImageForm(forms.Form):
def __init__(self, *args, **kwargs):
super(ShareImageForm, self).__init__(*args, **kwargs)
self.helper = FormHelper()
self.helper.form_id = 'id-exampleForm'
self.helper.form_class = 'blueForms'
self.helper.form_method = 'post'
self.helper.form_action = 'submit_survey'
self.helper.add_input(Submit('submit', 'Submit'))
data_center = forms.TypedChoiceField(
label = "Please pick a region: ",
choices = ((1, "IAD"), (2, "ORD"),
(3, "DFW"), (4, "HKG")),
widget = forms.RadioSelect,
initial = '1',
required = True,
)
views.py
from django.views.generic import View, CreateView, TemplateView, ListView, DetailView, DeleteView, UpdateView
from django.http import Http404, HttpResponse
from django.conf import settings
from .forms import ShareImageForm
class ShareImage(CreateView, ShareImageForm):
template_name ="share_image.html"
form_class = ShareImageForm
success_url = '/'
def form_valid(self, form):
return super(CreateRequest, self).form_valid(form)
Upvotes: 1
Views: 6218
Reputation: 15519
ShareImageForm
should inherit from ModelForm
.
Reference: Getting __init__() got an unexpected keyword argument 'instance' with CreateView of Django
Upvotes: 3