From b6921baedee140ba3a5622080e6b8c5860f527f1 Mon Sep 17 00:00:00 2001 From: Bastien Vallet Date: Wed, 5 Aug 2020 10:39:48 +0200 Subject: [PATCH] Add support for Django 3.1 --- .travis.yml | 5 +++++ polymorphic/query.py | 2 +- polymorphic/query_translate.py | 4 ++-- setup.cfg | 1 + tox.ini | 7 ++++--- 5 files changed, 13 insertions(+), 6 deletions(-) diff --git a/.travis.yml b/.travis.yml index 9edc4d6..76a7e2d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -27,6 +27,11 @@ matrix: - { env: TOXENV=py37-django30, python: 3.7 } - { env: TOXENV=py38-django30, python: 3.8 } - { env: TOXENV=py38-django30-postgres DB=postgres, python: 3.8 } + # Django 3.1: Python 3.6, 3.7 or 3.8 + - { env: TOXENV=py36-django31, python: 3.6 } + - { env: TOXENV=py37-django31, python: 3.7 } + - { env: TOXENV=py38-django31, python: 3.8 } + - { env: TOXENV=py38-django31-postgres DB=postgres, python: 3.8 } # Django development master (direct from GitHub source): - { env: TOXENV=py36-djangomaster, python: 3.6 } - { env: TOXENV=py37-djangomaster, python: 3.7 } diff --git a/polymorphic/query.py b/polymorphic/query.py index 7277f6c..197fc0c 100644 --- a/polymorphic/query.py +++ b/polymorphic/query.py @@ -6,7 +6,7 @@ import copy from collections import defaultdict from django.contrib.contenttypes.models import ContentType -from django.db.models import FieldDoesNotExist +from django.core.exceptions import FieldDoesNotExist from django.db.models.query import ModelIterable, Q, QuerySet from . import compat diff --git a/polymorphic/query_translate.py b/polymorphic/query_translate.py index 08798bc..45328a9 100644 --- a/polymorphic/query_translate.py +++ b/polymorphic/query_translate.py @@ -7,7 +7,7 @@ from collections import deque from django.apps import apps from django.contrib.contenttypes.models import ContentType -from django.core.exceptions import FieldError +from django.core.exceptions import FieldError, FieldDoesNotExist from django.db import models from django.db.models import Q from django.db.models.fields.related import ForeignObjectRel, RelatedField @@ -187,7 +187,7 @@ def translate_polymorphic_field_path(queryset_model, field_path): # Can also test whether the field exists in the related object to avoid ambiguity between # class names and field names, but that never happens when your class names are in CamelCase. return field_path # No exception raised, field does exist. - except models.FieldDoesNotExist: + except FieldDoesNotExist: pass submodels = _get_all_sub_models(queryset_model) diff --git a/setup.cfg b/setup.cfg index 74740de..c6755cb 100644 --- a/setup.cfg +++ b/setup.cfg @@ -17,6 +17,7 @@ classifiers = Framework :: Django :: 2.1 Framework :: Django :: 2.2 Framework :: Django :: 3.0 + Framework :: Django :: 3.1 Intended Audience :: Developers License :: OSI Approved :: BSD License Operating System :: OS Independent diff --git a/tox.ini b/tox.ini index abe33ca..e507416 100644 --- a/tox.ini +++ b/tox.ini @@ -1,9 +1,9 @@ [tox] envlist = py35-django{21,22,master} - py36-django{21,22,30,master} - py37-django{21,22,30,master} - py38-django{21,22,30,master} + py36-django{21,22,30,31,master} + py37-django{21,22,30,31,master} + py38-django{21,22,30,31,master} docs [testenv] @@ -17,6 +17,7 @@ deps = django21: Django ~= 2.1 django22: Django ~= 2.2 django30: Django ~= 3.0 + django31: Django ~= 3.1 djangomaster: https://github.com/django/django/archive/master.tar.gz postgres: psycopg2 commands =