From af0b367987c15ff34ce54e2c9cf23436aa0633d7 Mon Sep 17 00:00:00 2001 From: cglace Date: Wed, 28 Jan 2015 15:02:38 -0500 Subject: [PATCH 1/4] Move version check outside of render func --- django_quicky/decorators.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/django_quicky/decorators.py b/django_quicky/decorators.py index bf9ceb3..6d7be91 100644 --- a/django_quicky/decorators.py +++ b/django_quicky/decorators.py @@ -17,6 +17,8 @@ __all__ = ["view", "routing"] +DJANGO_GTE_17 = django.VERSION[0] >= 1 and django.VERSION[1] >= 7 + def render_if(self, render_to=None, condition=lambda: False): """ @@ -123,7 +125,7 @@ def wrapper(request, *args, **kwargs): if rendering and not isinstance(response, HttpResponse): if rendering == 'json': - if django.VERSION[0] >= 1 and django.VERSION[1] >= 7: + if DJANGO_GTE_17: return HttpResponse(json.dumps(response), content_type="application/json", *decorator_args, **decorator_kwargs) From e90bcfa2f66ed0d06b7f3e87a82bdad647d943c4 Mon Sep 17 00:00:00 2001 From: Alan Justino Date: Thu, 13 Apr 2017 16:13:51 -0300 Subject: [PATCH 2/4] Simpler version comparison --- django_quicky/decorators.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/django_quicky/decorators.py b/django_quicky/decorators.py index 6d7be91..d4373cf 100644 --- a/django_quicky/decorators.py +++ b/django_quicky/decorators.py @@ -17,7 +17,7 @@ __all__ = ["view", "routing"] -DJANGO_GTE_17 = django.VERSION[0] >= 1 and django.VERSION[1] >= 7 +DJANGO_GTE_17 = django.VERSION >= (1, 7) def render_if(self, render_to=None, condition=lambda: False): From d44d060ca0b322e5bd44f7277d19c46151e1dc07 Mon Sep 17 00:00:00 2001 From: Alan Justino Date: Thu, 13 Apr 2017 16:29:32 -0300 Subject: [PATCH 3/4] Compat with Django >= 1.10 url() have no more support for 'prefix' keyword --- django_quicky/decorators.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/django_quicky/decorators.py b/django_quicky/decorators.py index d4373cf..fb37821 100644 --- a/django_quicky/decorators.py +++ b/django_quicky/decorators.py @@ -18,6 +18,7 @@ __all__ = ["view", "routing"] DJANGO_GTE_17 = django.VERSION >= (1, 7) +DJANGO_GTE_110 = django.VERSION >= (1, 10) def render_if(self, render_to=None, condition=lambda: False): @@ -171,13 +172,14 @@ def other_view(request, pk): urlpatterns = UrlList() def url(regex, kwargs=None, name=None, prefix=''): + if prefix and DJANGO_GTE_110: + raise RuntimeError("Support for 'prefix' option on url() was dropped in Django 1.10. Please update your code") def decorator(func): - + kwargs = {'prefix': prefix} if prefix else {} urlpatterns.append( - addurl(regex, func, kwargs, name or func.__name__, prefix), + addurl(regex, func, kwargs, name or func.__name__, **kwargs), ) - return func return decorator From e5ea38ef19de9904abf237f7ee9a980bd35d6585 Mon Sep 17 00:00:00 2001 From: Alan Justino Date: Tue, 23 May 2017 15:43:27 -0300 Subject: [PATCH 4/4] Apply .as_view() automatically on decorated if possible --- django_quicky/decorators.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/django_quicky/decorators.py b/django_quicky/decorators.py index fb37821..d99d488 100644 --- a/django_quicky/decorators.py +++ b/django_quicky/decorators.py @@ -177,8 +177,9 @@ def url(regex, kwargs=None, name=None, prefix=''): def decorator(func): kwargs = {'prefix': prefix} if prefix else {} + final_func = func.as_view() if hasattr(func, 'as_view') else func urlpatterns.append( - addurl(regex, func, kwargs, name or func.__name__, **kwargs), + addurl(regex, final_func, kwargs, name or func.__name__, **kwargs), ) return func