def admin_network_form(request):
"""
Ajax page for updating, removing and adding networks.
"""
qs = request.GET.copy()
if request.POST['action'] == 'update':
try:
net = Subnet.objects.select_related('owner', 'dc_bound').get(name=request.POST['adm-name'])
except Subnet.DoesNotExist:
raise Http404
else:
net = None
form = AdminNetworkForm(request, net, request.POST, prefix='adm')
if form.is_valid():
args = (form.cleaned_data['name'],)
status = form.save(args=args)
if status == 204:
return HttpResponse(None, status=status)
elif status in (200, 201):
if form.action == 'create' and not form.cleaned_data.get('dc_bound'):
qs['all'] = 1 # Show all items if adding new item and not attaching
# Redirect to ip list or network list depending on ips parameter
if request.GET.get('ips', False):
redir_view = 'dc_network_ip_list'
redir_args = (net.name,)
else:
redir_view = 'dc_network_list'
redir_args = ()
return redirect(redir_view, *redir_args, query_string=qs)
return render(request, 'gui/dc/network_admin_form.html', {'form': form, 'nodc': request.GET.get('ips', '')})
评论列表
文章目录