def network_ip_form(request, name):
"""
Ajax page for updating, removing and adding network IP address(es).
"""
try:
net = Subnet.objects.get(name=name)
except Subnet.DoesNotExist:
raise Http404
form_class = NetworkIPForm
if request.POST['action'] == 'update':
try:
ip = IPAddress.objects.get(subnet=net, ip=request.POST.get('ip'))
except IPAddress.DoesNotExist:
raise Http404
else:
ip = None
if request.POST.get('ips', False):
form_class = MultiNetworkIPForm
form = form_class(request, net, ip, request.POST)
if form.is_valid():
status = form.save(args=form.api_call_args(name))
if status == 204:
return HttpResponse(None, status=status)
elif status in (200, 201):
messages.success(request, form.get_action_message())
return redirect('dc_network_ip_list', net.name, query_string=request.GET)
return render(request, form.template, {'form': form, 'net': {'name': name}})
评论列表
文章目录