mirror of
https://github.com/jazzband/django-axes.git
synced 2026-03-16 22:30:23 +00:00
Implement custom lazy object to avoid JSON errors with Celery
Fixes jazzband/django-axes#1391
This commit is contained in:
parent
cf0be90f11
commit
9257e35e3f
1 changed files with 13 additions and 1 deletions
14
axes/conf.py
14
axes/conf.py
|
|
@ -3,6 +3,18 @@ from django.contrib.auth import get_user_model
|
|||
from django.utils.functional import SimpleLazyObject
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
|
||||
class JSONSerializableLazyObject(SimpleLazyObject):
|
||||
"""
|
||||
Celery/Kombu config inspection may JSON-encode Django settings.
|
||||
Provide a JSON-friendly representation for lazy values.
|
||||
|
||||
Fixes jazzband/django-axes#1391
|
||||
"""
|
||||
def __json__(self):
|
||||
return str(self)
|
||||
|
||||
|
||||
# disable plugin when set to False
|
||||
settings.AXES_ENABLED = getattr(settings, "AXES_ENABLED", True)
|
||||
|
||||
|
|
@ -51,7 +63,7 @@ def _get_username_field_default():
|
|||
settings.AXES_USERNAME_FORM_FIELD = getattr(
|
||||
settings,
|
||||
"AXES_USERNAME_FORM_FIELD",
|
||||
SimpleLazyObject(_get_username_field_default),
|
||||
JSONSerializableLazyObject(_get_username_field_default),
|
||||
)
|
||||
|
||||
# use a specific password field to retrieve from login POST data
|
||||
|
|
|
|||
Loading…
Reference in a new issue