Post() takes from 3 to 4 positional arguments but 5 were given
Я пытаюсь составить формсет: мне нужно, чтобы при попадании на страницу с этим обработчиком я мог создать статью и тут же добавить в неё контент
views.py
class ContentCreateView(TemplateResponseMixin, View):
model = None
obj = None
template_name = 'content/create.html'
def get_model(self, model_name):
if model_name in ['text', 'video', 'image', 'file']:
return apps.get_model(app_label='content',
model_name=model_name)
return None
def get_form(self, model, *args, **kwargs):
Form = modelform_factory(model, exclude=['title',
'created',])
return Form(*args, **kwargs)
def dispatch(self, request, model_name=None, article_id=None, id=None):
if article_id:
self.article = get_object_or_404(Article,
id=article_id,)
if model_name:
self.model = self.get_model(model_name)
if id:
self.obj = get_object_or_404(self.model,
id=id)
return super(ContentCreateView,
self).dispatch(request, article_id, model_name, id)
def get(self, request, model_name, id=None):
form = self.get_form(self.model, instance=self.obj)
return self.render_to_response({'form': form,
'object': self.obj})
def post(self, request, model_name, id=None):
form = self.get_form(self.model,
instance=self.obj,
data=request.POST,
files=request.FILES)
if form.is_valid():
obj.save()
if not id:
Content.objects.create(article=self.article,
item=obj)
return redirect('content/detail.html', self.article.id)
return self.render_to_response({'form': form,
'object': self.obj})
Но получаю ошибку. В чём проблема, и что ещё в теории неправильно в моём коде?