mirror of
https://github.com/inventree/InvenTree.git
synced 2025-04-29 20:16:44 +00:00
Updated AjaxCreateView
- Return PK of newly-created object - Populate fields with initial values as necessary
This commit is contained in:
parent
d88da28871
commit
ab05c6ce1e
@ -20,7 +20,7 @@ class AjaxView(object):
|
|||||||
return self.template_name
|
return self.template_name
|
||||||
|
|
||||||
|
|
||||||
def renderJsonResponse(self, request, form):
|
def renderJsonResponse(self, request, form, data={}):
|
||||||
|
|
||||||
context = {'form': form,
|
context = {'form': form,
|
||||||
'form_action': self.ajax_form_action,
|
'form_action': self.ajax_form_action,
|
||||||
@ -28,8 +28,6 @@ class AjaxView(object):
|
|||||||
'submit_text': self.ajax_submit_text,
|
'submit_text': self.ajax_submit_text,
|
||||||
}
|
}
|
||||||
|
|
||||||
data = {'form_valid': form.is_valid()}
|
|
||||||
|
|
||||||
data['html_form'] = render_to_string(
|
data['html_form'] = render_to_string(
|
||||||
self.getAjaxTemplate(),
|
self.getAjaxTemplate(),
|
||||||
context,
|
context,
|
||||||
@ -46,20 +44,27 @@ class AjaxCreateView(AjaxView, CreateView):
|
|||||||
if request.is_ajax():
|
if request.is_ajax():
|
||||||
form = self.form_class(request.POST)
|
form = self.form_class(request.POST)
|
||||||
|
|
||||||
if form.is_valid():
|
data = {'form_valid': form.is_valid()}
|
||||||
form.save()
|
|
||||||
|
|
||||||
return self.renderJsonResponse(request, form)
|
if form.is_valid():
|
||||||
|
obj = form.save()
|
||||||
|
|
||||||
|
# Return the PK of the newly-created object
|
||||||
|
data['pk'] = obj.pk
|
||||||
|
|
||||||
|
return self.renderJsonResponse(request, form, data)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
return super(CreateView, self).post(request)
|
return super(CreateView, self).post(request)
|
||||||
|
|
||||||
def get(self, request):
|
def get(self, request):
|
||||||
|
|
||||||
|
response = super(CreateView, self).get(request)
|
||||||
|
|
||||||
if request.is_ajax():
|
if request.is_ajax():
|
||||||
form = self.form_class()
|
form = self.form_class(initial=self.get_initial())
|
||||||
|
|
||||||
return self.renderJsonResponse(request, form)
|
return self.renderJsonResponse(request, form)
|
||||||
|
|
||||||
else:
|
else:
|
||||||
return super(CreateView, self).post(request)
|
return response
|
||||||
|
Loading…
x
Reference in New Issue
Block a user