diff --git a/localized_fields/__init__.py b/localized_fields/__init__.py index bf9c230..59bcb62 100644 --- a/localized_fields/__init__.py +++ b/localized_fields/__init__.py @@ -1,9 +1,12 @@ -from .fields import (LocalizedAutoSlugField, LocalizedBleachField, - LocalizedField, LocalizedValue) +from .util import get_language_codes from .forms import LocalizedFieldForm, LocalizedFieldWidget +from .fields import (LocalizedField, LocalizedBleachField, + LocalizedAutoSlugField) +from .localized_value import LocalizedValue from .models import LocalizedModel __all__ = [ + 'get_language_codes', 'LocalizedField', 'LocalizedValue', 'LocalizedAutoSlugField', diff --git a/localized_fields/fields/__init__.py b/localized_fields/fields/__init__.py index c8f8f18..c259c5e 100644 --- a/localized_fields/fields/__init__.py +++ b/localized_fields/fields/__init__.py @@ -1,12 +1,10 @@ from .localized_field import LocalizedField -from .localized_value import LocalizedValue from .localized_autoslug_field import LocalizedAutoSlugField from .localized_bleach_field import LocalizedBleachField __all__ = [ 'LocalizedField', - 'LocalizedValue', 'LocalizedAutoSlugField', 'LocalizedBleachField' ] diff --git a/localized_fields/fields/localized_autoslug_field.py b/localized_fields/fields/localized_autoslug_field.py index 2f2a245..60394ea 100644 --- a/localized_fields/fields/localized_autoslug_field.py +++ b/localized_fields/fields/localized_autoslug_field.py @@ -5,7 +5,7 @@ from django.conf import settings from django.utils.text import slugify from .localized_field import LocalizedField -from .localized_value import LocalizedValue +from ..localized_value import LocalizedValue class LocalizedAutoSlugField(LocalizedField): @@ -17,7 +17,11 @@ class LocalizedAutoSlugField(LocalizedField): """Initializes a new instance of :see:LocalizedAutoSlugField.""" self.populate_from = kwargs.pop('populate_from', None) - super(LocalizedAutoSlugField, self).__init__(*args, **kwargs) + + super(LocalizedAutoSlugField, self).__init__( + *args, + **kwargs + ) def deconstruct(self): """Deconstructs the field into something the database diff --git a/localized_fields/fields/localized_field.py b/localized_fields/fields/localized_field.py index 39566c7..ef3098e 100644 --- a/localized_fields/fields/localized_field.py +++ b/localized_fields/fields/localized_field.py @@ -2,8 +2,8 @@ from django.conf import settings from django.contrib.postgres.fields import HStoreField from django.db.utils import IntegrityError -from ..forms import LocalizedFieldForm -from .localized_value import LocalizedValue +from localized_fields import LocalizedFieldForm +from ..localized_value import LocalizedValue class LocalizedField(HStoreField): @@ -164,9 +164,10 @@ class LocalizedField(HStoreField): """Gets the values to pass to :see:__init__ when re-creating this object.""" - values = super(LocalizedField, self).deconstruct() - values[3].update({ - 'uniqueness': self.uniqueness - }) + name, path, args, kwargs = super( + LocalizedField, self).deconstruct() - return values + if self.uniqueness: + kwargs['uniqueness'] = self.uniqueness + + return name, path, args, kwargs diff --git a/localized_fields/forms.py b/localized_fields/forms.py index df56f8c..abc0ccd 100644 --- a/localized_fields/forms.py +++ b/localized_fields/forms.py @@ -4,7 +4,7 @@ from django import forms from django.conf import settings from django.forms import MultiWidget -from .fields.localized_value import LocalizedValue +from .localized_value import LocalizedValue class LocalizedFieldWidget(MultiWidget): diff --git a/localized_fields/fields/localized_value.py b/localized_fields/localized_value.py similarity index 100% rename from localized_fields/fields/localized_value.py rename to localized_fields/localized_value.py diff --git a/localized_fields/models.py b/localized_fields/models.py index 1d94196..5b2061c 100644 --- a/localized_fields/models.py +++ b/localized_fields/models.py @@ -1,6 +1,7 @@ from django.db import models -from .fields import LocalizedField, LocalizedValue +from .fields import LocalizedField +from .localized_value import LocalizedValue class LocalizedModel(models.Model): diff --git a/localized_fields/util.py b/localized_fields/util.py new file mode 100644 index 0000000..35d1ff2 --- /dev/null +++ b/localized_fields/util.py @@ -0,0 +1,21 @@ +from typing import List + +from django.conf import settings + + +def get_language_codes() -> List[str]: + """Gets a list of all available language codes. + + This looks at your project's settings.LANGUAGES + and returns a flat list of the configured + language codes. + + Arguments: + A flat list of all availble language codes + in your project. + """ + + return [ + lang_code + for lang_code, _ in settings.LANGUAGES + ]