From 45aced356f326f2660b6b2b4f06e45f805f28549 Mon Sep 17 00:00:00 2001 From: Mariusz Felisiak Date: Tue, 1 Nov 2016 13:53:44 +0100 Subject: [PATCH] Fixed #387 -- Importing from django.core.urlresolvers is deprecated in favor of django.urls --- django_tables2/columns/linkcolumn.py | 21 +++++++++++++-------- example/app/views.py | 7 ++++++- tests/app/models.py | 7 ++++++- tests/columns/test_linkcolumn.py | 7 ++++++- 4 files changed, 31 insertions(+), 11 deletions(-) diff --git a/django_tables2/columns/linkcolumn.py b/django_tables2/columns/linkcolumn.py index 4fb76f5a..b31de8b9 100644 --- a/django_tables2/columns/linkcolumn.py +++ b/django_tables2/columns/linkcolumn.py @@ -1,9 +1,14 @@ # coding: utf-8 from __future__ import absolute_import, unicode_literals -from django.core.urlresolvers import reverse from django.utils.html import format_html +try: + from django.urls import reverse +except ImportError: + # to keep backward (Django <= 1.9) compatibility + from django.core.urlresolvers import reverse + from django_tables2.utils import Accessor, AttributeDict from .base import Column, library @@ -63,19 +68,19 @@ class LinkColumn(BaseLinkColumn): dedicated to that record. The first arguments are identical to that of - `~django.core.urlresolvers.reverse` and allows an internal URL to be + `~django.urls.reverse` and allows an internal URL to be described. If this argument is `None`, then `get_absolute_url`. (see Django references) will be used. The last argument *attrs* allows custom HTML attributes to be added to the rendered ```` tag. Arguments: - viewname (str): See `~django.core.urlresolvers.reverse`, or use `None` + viewname (str): See `~django.urls.reverse`, or use `None` to use the model's `get_absolute_url` - urlconf (str): See `~django.core.urlresolvers.reverse`. - args (list): See `~django.core.urlresolvers.reverse`. [2]_ - kwargs (dict): See `~django.core.urlresolvers.reverse`. [2]_ - current_app (str): See `~django.core.urlresolvers.reverse`. + urlconf (str): See `~django.urls.reverse`. + args (list): See `~django.urls.reverse`. [2]_ + kwargs (dict): See `~django.urls.reverse`. [2]_ + current_app (str): See `~django.urls.reverse`. attrs (dict): HTML attributes that are added to the rendered ``...`` tag. text (str or callable): Either static text, or a callable. If set, this @@ -85,7 +90,7 @@ class LinkColumn(BaseLinkColumn): .. [2] In order to create a link to a URL that relies on information in the current row, `.Accessor` objects can be used in the *args* or *kwargs* arguments. The accessor will be resolved using the row's record before - `~django.core.urlresolvers.reverse` is called. + `~django.urls.reverse` is called. Example: diff --git a/example/app/views.py b/example/app/views.py index 5eac7ba2..9faa676a 100644 --- a/example/app/views.py +++ b/example/app/views.py @@ -1,11 +1,16 @@ # coding: utf-8 from random import choice -from django.core.urlresolvers import reverse from django.shortcuts import render from django.utils.lorem_ipsum import words from django.views.generic.base import TemplateView +try: + from django.urls import reverse +except ImportError: + # to keep backward (Django <= 1.9) compatibility + from django.core.urlresolvers import reverse + from django_tables2 import MultiTableMixin, RequestConfig, SingleTableView from .models import Country, Person diff --git a/tests/app/models.py b/tests/app/models.py index 7f60744b..63f6f46b 100644 --- a/tests/app/models.py +++ b/tests/app/models.py @@ -3,12 +3,17 @@ from django.contrib.contenttypes.fields import GenericForeignKey from django.contrib.contenttypes.models import ContentType -from django.core.urlresolvers import reverse from django.db import models from django.utils import six from django.utils.safestring import mark_safe from django.utils.translation import ugettext, ugettext_lazy +try: + from django.urls import reverse +except ImportError: + # to keep backward (Django <= 1.9) compatibility + from django.core.urlresolvers import reverse + @six.python_2_unicode_compatible class Person(models.Model): diff --git a/tests/columns/test_linkcolumn.py b/tests/columns/test_linkcolumn.py index 398b6f92..13b2d24c 100644 --- a/tests/columns/test_linkcolumn.py +++ b/tests/columns/test_linkcolumn.py @@ -2,10 +2,15 @@ from __future__ import unicode_literals import pytest -from django.core.urlresolvers import reverse from django.template import Context, Template from django.utils.html import mark_safe +try: + from django.urls import reverse +except ImportError: + # to keep backward (Django <= 1.9) compatibility + from django.core.urlresolvers import reverse + import django_tables2 as tables from django_tables2 import A