File django4.patch of Package python-django-tagging
From f3622e62112c3ecc89eabb2512b1b3dd2e5e6ca0 Mon Sep 17 00:00:00 2001
From: Fantomas42 <fantomas42@gmail.com>
Date: Fri, 6 Mar 2020 19:00:00 +0100
Subject: [PATCH 1/4] Fix typo
---
tagging/models.py | 10 ++++++----
tagging/tests/urls.py | 12 ++++++------
2 files changed, 12 insertions(+), 10 deletions(-)
--- a/tagging/models.py
+++ b/tagging/models.py
@@ -5,7 +5,8 @@ from django.contrib.contenttypes.fields
from django.contrib.contenttypes.models import ContentType
from django.db import connection
from django.db import models
-from django.utils.encoding import smart_text
+from django.db.models.query_utils import Q
+from django.utils.encoding import smart_str
from django.utils.translation import gettext_lazy as _
from tagging import settings
@@ -155,8 +156,9 @@ class TagManager(models.Manager):
filters = {}
queryset = model._default_manager.filter()
- for f in filters.items():
- queryset.query.add_filter(f)
+ for k, v in filters.items():
+ # Add support for both Django 4 and inferior versions
+ queryset.query.add_q(Q((k, v)))
usage = self.usage_for_queryset(queryset, counts, min_count)
return usage
@@ -519,4 +521,4 @@ class TaggedItem(models.Model):
verbose_name_plural = _('tagged items')
def __str__(self):
- return '%s [%s]' % (smart_text(self.object), smart_text(self.tag))
+ return '%s [%s]' % (smart_str(self.object), smart_str(self.tag))
--- a/tagging/tests/urls.py
+++ b/tagging/tests/urls.py
@@ -1,5 +1,5 @@
"""Test urls for tagging."""
-from django.conf.urls import url
+from django.urls import re_path
from tagging.tests.models import Article
from tagging.views import TaggedObjectList
@@ -11,10 +11,10 @@ class StaticTaggedObjectList(TaggedObjec
urlpatterns = [
- url(r'^static/$', StaticTaggedObjectList.as_view()),
- url(r'^static/related/$', StaticTaggedObjectList.as_view(
+ re_path(r'^static/$', StaticTaggedObjectList.as_view()),
+ re_path(r'^static/related/$', StaticTaggedObjectList.as_view(
related_tags=True)),
- url(r'^no-tag/$', TaggedObjectList.as_view(model=Article)),
- url(r'^no-query-no-model/$', TaggedObjectList.as_view()),
- url(r'^(?P<tag>[^/]+(?u))/$', TaggedObjectList.as_view(model=Article)),
+ re_path(r'^no-tag/$', TaggedObjectList.as_view(model=Article)),
+ re_path(r'^no-query-no-model/$', TaggedObjectList.as_view()),
+ re_path(r'(?u)^(?P<tag>[^/]+)/$', TaggedObjectList.as_view(model=Article)),
]