def post(self, request, *args, **kwargs):
self.get_model_from_url(**kwargs)
self.get_child_model()
# to use the django CreateView, we need self.model to be the model thats created
self.parent_model = self.model
self.model = self.child_model
self.form_class = self.form_class_from_model()
form = self.get_form()
if form.is_valid():
print 'form valid'
response_redirect = self.form_valid(form) # now self.object is saved
else:
print 'form invalid'
response_redirect = self.form_invalid(form)
if hasattr(self, 'object') and self.object: # if we created something, make a relationship
if self.through_model:
new_relationshp = self.through_model.create()
new_relationshp.parent = self.parent
new_relationshp.child = self.object
new_relationshp.save()
else:
self.object.parent = self.parent
self.object.save()
return HttpResponse(status=201) # created
return HttpResponse('Object was not created.', status=503) # unavailable
评论列表
文章目录