Django Crispy Forms TypeError: __init__() получил неожиданный аргумент ключевого слова «экземпляр»

Я пытаюсь сделать форму html5 в формах Django и Crispy, но получаю TypeError: __init__() got an unexpected keyword argument 'instance':

формы.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,
            )

просмотры.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)

person dman    schedule 01.02.2014    source источник


Ответы (1)


ShareImageForm должен наследовать от ModelForm.

Ссылка: Получение __init__() получило неожиданный аргумент ключевого слова ' экземпляр" с CreateView Django

person mariodev    schedule 01.02.2014
comment
Даже если он не использует базу данных? - person dman; 02.02.2014
comment
@dman CreateView используется специально для сохранения объектов в БД, поэтому, если вы этого не сделаете, вам следует вместо этого использовать FormView. - person mariodev; 02.02.2014