def client_update(request, client_id, template_name="client/client_tabs.html"): client = get_object_or_404(Client, pk=client_id) client_form = ClientForm(request.POST or None, instance=client) contact_inlineformset = inlineformset_factory(Client, ClientContact, form=ClientContactForm, extra=1) contacts = contact_inlineformset(request.POST, instance=client) if request.method == "POST": if request.POST['action'] == "save": if client_form.is_valid() and contacts.is_valid(): if client_form.has_changed(): client_form.save() if contacts.has_changed(): contacts.save() if client_form.has_changed() or contacts.has_changed(): messages.success(request, _('Customer updated successfully.')) else: messages.warning(request, _('There is no changes to save.')) redirect_url = reverse("client_view", args=(client.id,)) return HttpResponseRedirect(redirect_url) else: contact_inlineformset = contact_inlineformset(instance=client) context = {"client": client, "client_form": client_form, "contact_inlineformset": contact_inlineformset, "editing": True, "tab": "1"} return render(request, template_name, context)