diff --git a/conntrackt/admin.py b/conntrackt/admin.py --- a/conntrackt/admin.py +++ b/conntrackt/admin.py @@ -42,7 +42,7 @@ # Django imports. from django.contrib import admin -from django.core.urlresolvers import resolve +from django.urls import resolve # Application imports. from .models import Project, Location, Entity, Interface, Communication diff --git a/conntrackt/models.py b/conntrackt/models.py --- a/conntrackt/models.py +++ b/conntrackt/models.py @@ -22,7 +22,7 @@ # Django imports. from django.contrib.admin.utils import NestedObjects from django.core.exceptions import ValidationError -from django.core.urlresolvers import reverse +from django.urls import reverse from django.db import models from django.db.models.query_utils import Q @@ -248,8 +248,8 @@ class Entity(RelatedCollectorMixin, mode name = models.CharField(max_length=100) description = models.TextField(blank=True) - project = models.ForeignKey(Project) - location = models.ForeignKey(Location) + project = models.ForeignKey(Project, on_delete = models.CASCADE) + location = models.ForeignKey(Location, on_delete = models.CASCADE) objects = SearchManager() class Meta: @@ -345,7 +345,7 @@ class Interface(RelatedCollectorMixin, m name = models.CharField(max_length=100, default='eth0') description = models.TextField(blank=True, default='Main network interface.') - entity = models.ForeignKey(Entity) + entity = models.ForeignKey(Entity, on_delete = models.CASCADE) address = models.GenericIPAddressField() netmask = models.GenericIPAddressField(default='255.255.255.255') @@ -407,8 +407,8 @@ class Communication(RelatedCollectorMixi ('ICMP', 'ICMP'), ) - source = models.ForeignKey(Interface, related_name='source_set') - destination = models.ForeignKey(Interface, related_name='destination_set') + source = models.ForeignKey(Interface, related_name='source_set', on_delete = models.CASCADE) + destination = models.ForeignKey(Interface, related_name='destination_set', on_delete = models.CASCADE) protocol = models.CharField(max_length=10, choices=PROTOCOL_CHOICES) port = models.IntegerField(default=0) description = models.TextField(blank=True) diff --git a/conntrackt/templates/admin/conntrackt/communication/change_list.html b/conntrackt/templates/admin/conntrackt/communication/change_list.html --- a/conntrackt/templates/admin/conntrackt/communication/change_list.html +++ b/conntrackt/templates/admin/conntrackt/communication/change_list.html @@ -1,6 +1,5 @@ {% extends "admin/change_list.html" %} {% load i18n admin_static admin_list %} -{% load url from future %} {% load admin_urls %} {% block object-tools-items %} diff --git a/conntrackt/templatetags/conntrackt_tags.py b/conntrackt/templatetags/conntrackt_tags.py --- a/conntrackt/templatetags/conntrackt_tags.py +++ b/conntrackt/templatetags/conntrackt_tags.py @@ -21,7 +21,7 @@ # Django imports. from django import template -from django.core import urlresolvers +from django import urls from django.utils.html import format_html @@ -62,7 +62,7 @@ def html_link(text, view, *args, **kwarg # Generate the URL by using the supplied view name and arguments that should # be passed to the view. - url = urlresolvers.reverse(view, args=args) + url = urls.reverse(view, args=args) # Set-up the base pattern (url, parameters, text). if 'get' in kwargs: @@ -121,8 +121,8 @@ def current_url_equals(context, url_name resolved = False try: # Use the request path, and resolve it to a URL name. - resolved = urlresolvers.resolve(context.get('request').path) - except urlresolvers.Resolver404: + resolved = urls.resolve(context.get('request').path) + except urls.Resolver404: # This means we haven't been able to resolve the path from request. pass diff --git a/conntrackt/tests/test_tags.py b/conntrackt/tests/test_tags.py --- a/conntrackt/tests/test_tags.py +++ b/conntrackt/tests/test_tags.py @@ -35,7 +35,7 @@ from django.test import TestCase from conntrackt.templatetags.conntrackt_tags import html_link, active_link, current_url_equals -@mock.patch('conntrackt.templatetags.conntrackt_tags.urlresolvers.reverse') +@mock.patch('conntrackt.templatetags.conntrackt_tags.urls.reverse') class HtmlLinkTest(TestCase): def test_url_reverse_called_with_passed_in_args(self, mock_reverse): diff --git a/conntrackt/tests/test_views.py b/conntrackt/tests/test_views.py --- a/conntrackt/tests/test_views.py +++ b/conntrackt/tests/test_views.py @@ -29,7 +29,7 @@ import mock # Django imports. from django.core.exceptions import ValidationError -from django.core.urlresolvers import reverse +from django.urls import reverse from django.http import Http404 from django.test import RequestFactory from django.test import TestCase diff --git a/conntrackt/views.py b/conntrackt/views.py --- a/conntrackt/views.py +++ b/conntrackt/views.py @@ -28,11 +28,11 @@ import json from django.contrib.auth.decorators import permission_required from django.contrib import messages from django.core.exceptions import ValidationError -from django.core.urlresolvers import reverse, reverse_lazy from django.db.models import Q from django.db.models.deletion import Collector from django.http import HttpResponse from django.shortcuts import render_to_response, get_object_or_404 +from django.urls import reverse, reverse_lazy from django.views.generic import TemplateView, DetailView, CreateView, UpdateView, DeleteView, View # Third-party application imports. diff --git a/requirements/base.in b/requirements/base.in --- a/requirements/base.in +++ b/requirements/base.in @@ -21,10 +21,10 @@ django-braces~=1.12.0 # Convenience tools for controlling rendering of forms while embracing DRY. -django-crispy-forms~=1.6.0 +django-crispy-forms~=1.7.0 # Web framework used by application. -django~=1.10.0 +django~=1.11.0 # Library for programatic calculation of colours (contrasts, # inversions etc). diff --git a/requirements/development.txt b/requirements/development.txt --- a/requirements/development.txt +++ b/requirements/development.txt @@ -10,8 +10,8 @@ certifi==2017.11.5 # via requests chardet==3.0.4 # via requests coverage==4.4.2 django-braces==1.12.0 -django-crispy-forms==1.6.1 -django==1.10.8 +django-crispy-forms==1.7.0 +django==1.11.8 docutils==0.14 # via sphinx factory-boy==2.1.2 funcsigs==1.0.2 # via mock diff --git a/requirements/test.txt b/requirements/test.txt --- a/requirements/test.txt +++ b/requirements/test.txt @@ -10,8 +10,8 @@ certifi==2017.11.5 # via requests chardet==3.0.4 # via requests coverage==4.4.2 django-braces==1.12.0 -django-crispy-forms==1.6.1 -django==1.10.8 +django-crispy-forms==1.7.0 +django==1.11.8 docutils==0.14 # via sphinx factory-boy==2.1.2 funcsigs==1.0.2 # via mock diff --git a/setup.py b/setup.py --- a/setup.py +++ b/setup.py @@ -25,8 +25,8 @@ from setuptools import setup, find_packa README = open(os.path.join(os.path.dirname(__file__), 'README.rst')).read() INSTALL_REQUIREMENTS = [ "django-braces~=1.12.0", - "django-crispy-forms~=1.6.0", - "django~=1.10.0", + "django-crispy-forms~=1.7.0", + "django~=1.11.0", "palette~=0.2.0", "pydot~=1.2.0", ]