no need inheritance from LocalizedModel anymore. Introduction of LocalizedValueDescriptor

This commit is contained in:
seroy
2017-03-13 00:50:34 +03:00
parent 3951266747
commit 340dde18cd
6 changed files with 93 additions and 63 deletions

View File

@@ -62,15 +62,14 @@ Usage
Preparation
^^^^^^^^^^^
Inherit your model from ``LocalizedModel`` and declare fields on your model as ``LocalizedField``:
Declare fields on your model as ``LocalizedField``:
.. code-block:: python
from localized_fields.models import LocalizedModel
from localized_fields.fields import LocalizedField
class MyModel(LocalizedModel):
class MyModel(models.Model):
title = LocalizedField()
``django-localized-fields`` integrates with Django's i18n system, in order for certain languages to be available you have to correctly configure the ``LANGUAGES`` and ``LANGUAGE_CODE`` settings:
@@ -136,14 +135,14 @@ At the moment, it is not possible to select two languages to be marked as requir
.. code-block:: python
class MyModel(LocalizedModel):
class MyModel(models.Model):
title = LocalizedField(required=True)
* Make all languages optional:
.. code-block:: python
class MyModel(LocalizedModel):
class MyModel(models.Model):
title = LocalizedField(null=True)
**Uniqueness**
@@ -154,7 +153,7 @@ By default the values stored in a ``LocalizedField`` are *not unique*. You can e
.. code-block:: python
class MyModel(LocalizedModel):
class MyModel(models.Model):
title = LocalizedField(uniqueness=['en', 'ro'])
* Enforce uniqueness for **all** languages:
@@ -163,14 +162,14 @@ By default the values stored in a ``LocalizedField`` are *not unique*. You can e
from localized_fields import get_language_codes
class MyModel(LocalizedModel):
class MyModel(models.Model):
title = LocalizedField(uniqueness=get_language_codes())
* Enforce uniqueness for one ore more languages **together** (similar to Django's ``unique_together``):
.. code-block:: python
class MyModel(LocalizedModel):
class MyModel(models.Model):
title = LocalizedField(uniqueness=[('en', 'ro')])
* Enforce uniqueness for **all** languages **together**:
@@ -179,7 +178,7 @@ By default the values stored in a ``LocalizedField`` are *not unique*. You can e
from localized_fields import get_language_codes
class MyModel(LocalizedModel):
class MyModel(models.Model):
title = LocalizedField(uniqueness=[(*get_language_codes())])
@@ -193,12 +192,11 @@ Besides ``LocalizedField``, there's also:
.. code-block:: python
from localized_fields import (LocalizedModel,
AtomicSlugRetryMixin,
from localized_fields import (AtomicSlugRetryMixin,
LocalizedField,
LocalizedUniqueSlugField)
class MyModel(AtomicSlugRetryMixin, LocalizedModel):
class MyModel(AtomicSlugRetryMixin, models.Model):
title = LocalizedField()
slug = LocalizedUniqueSlugField(populate_from='title')
@@ -218,11 +216,10 @@ Besides ``LocalizedField``, there's also:
.. code-block:: python
from localized_fields import (LocalizedModel,
LocalizedField,
from localized_fields import (LocalizedField,
LocalizedUniqueSlugField)
class MyModel(LocalizedModel):
class MyModel(models.Model):
title = LocalizedField()
slug = LocalizedAutoSlugField(populate_from='title')
@@ -236,11 +233,10 @@ Besides ``LocalizedField``, there's also:
.. code-block:: python
from localized_fields import (LocalizedModel,
LocalizedField,
from localized_fields import (LocalizedField,
LocalizedBleachField)
class MyModel(LocalizedModel):
class MyModel(models.Model):
title = LocalizedField()
description = LocalizedBleachField()