Metadata-Version: 2.4
Name: django-localized-fields
Version: 6.9
Summary: Implementation of localized model fields using PostgreSQL HStore fields.
Author-email: Sector Labs <open-source@sectorlabs.ro>
License: MIT License
Project-URL: Homepage, https://github.com/SectorLabs/django-localized-fields
Keywords: django,localized,language,models,fields,postgres,hstore,i18n
Classifier: Environment :: Web Environment
Classifier: Framework :: Django
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
Requires-Python: >=3.7
Description-Content-Type: text/markdown
License-File: LICENSE.md
Requires-Dist: Django>=2.0
Requires-Dist: django-postgres-extra<4.0,>=2.0
Requires-Dist: deprecation>=2.0.7
Provides-Extra: dev
Requires-Dist: poethepoet==0.34.0; python_version >= "3.9" and extra == "dev"
Requires-Dist: poethepoet==0.30.0; (python_version >= "3.8" and python_version < "3.9") and extra == "dev"
Requires-Dist: poethepoet==0.19.0; (python_version >= "3.7" and python_version < "3.8") and extra == "dev"
Provides-Extra: test
Requires-Dist: psycopg2==2.9.11; python_version >= "3.9" and extra == "test"
Requires-Dist: psycopg2==2.9.10; (python_version >= "3.8" and python_version < "3.9") and extra == "test"
Requires-Dist: psycopg2==2.9.9; python_version < "3.8" and extra == "test"
Requires-Dist: pytest==8.4.0; python_version > "3.8" and extra == "test"
Requires-Dist: pytest==7.0.1; python_version <= "3.8" and extra == "test"
Requires-Dist: pytest-django==4.11.1; python_version > "3.7" and extra == "test"
Requires-Dist: pytest-django==4.5.2; python_version <= "3.7" and extra == "test"
Requires-Dist: pytest-cov==6.1.1; python_version > "3.8" and extra == "test"
Requires-Dist: pytest-cov==4.0.0; python_version <= "3.8" and extra == "test"
Requires-Dist: tox==4.26.0; python_version > "3.8" and extra == "test"
Requires-Dist: tox==3.28.0; python_version <= "3.8" and extra == "test"
Requires-Dist: dj-database-url==0.5.0; extra == "test"
Requires-Dist: django-autoslug==1.9.9; extra == "test"
Requires-Dist: django-bleach!=3.0.0,>=2.0.0; extra == "test"
Provides-Extra: analysis
Requires-Dist: black==22.3.0; extra == "analysis"
Requires-Dist: flake8==7.2.0; extra == "analysis"
Requires-Dist: autoflake==2.3.1; extra == "analysis"
Requires-Dist: autopep8==2.3.2; extra == "analysis"
Requires-Dist: isort==6.0.1; extra == "analysis"
Requires-Dist: docformatter==1.7.7; extra == "analysis"
Provides-Extra: docs
Requires-Dist: Sphinx==8.2.3; extra == "docs"
Requires-Dist: sphinx-rtd-theme==3.0.2; extra == "docs"
Requires-Dist: docutils==0.21.2; extra == "docs"
Requires-Dist: Jinja2==3.1.6; extra == "docs"
Dynamic: license-file

|  |  |                                                                                                                                                                             |
|--------------------|---------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| :white_check_mark: | **Tests** | [![Verify](https://github.com/SectorLabs/django-localized-fields/actions/workflows/test.yml/badge.svg?branch=master)](https://github.com/SectorLabs/django-localized-fields/actions/workflows/test.yml) |
| :memo: | **License** | [![License](https://img.shields.io/:license-mit-blue.svg)](http://doge.mit-license.org)                                                                                     |
| :package: | **PyPi** | [![PyPi](https://badge.fury.io/py/django-localized-fields.svg)](https://pypi.python.org/pypi/django-localized-fields)                                                       |
| <img src="https://cdn.iconscout.com/icon/free/png-256/django-1-282754.png" width="22px" height="22px" align="center" /> | **Django Versions** | 2.0, 2.1, 2.2, 3.0, 3.1, 3.2, 4.0, 4.1, 4.2, 5.0, 5.1, 5.2                                                                                                                  |
| <img src="http://www.iconarchive.com/download/i73027/cornmanthe3rd/plex/Other-python.ico" width="22px" height="22px" align="center" /> | **Python Versions** | 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13, 3.14                                                                                                                                 |
| :book: | **Documentation** | [Read The Docs](https://django-localized-fields.readthedocs.io)                                                                                                             |
| :warning: | **Upgrade** | [Upgrade fom v5.x](https://django-localized-fields.readthedocs.io/en/latest/releases.html#v6-0)                                                                             
| :checkered_flag: | **Installation** | [Installation Guide](https://django-localized-fields.readthedocs.io/en/latest/installation.html)                                                                            |

`django-localized-fields` is an implementation of a field class for Django models that allows the field's value to be set in multiple languages. It does this by utilizing the ``hstore`` type (PostgreSQL specific), which is available as `models.HStoreField` since Django 1.10.

---

:warning: **This README is for v6. See the `v5.x` branch for v5.x.**

---

## Working with the code
### Prerequisites

* PostgreSQL 12 or newer (Django 5.1 needs PostgreSQL 13 or newer, Django 5.2 needs 14 or newer).
* Django 2.0 or newer.
* Python 3.7 or newer.

### Getting started

1. Clone the repository:

       λ git clone https://github.com/SectorLabs/django-localized-fields.git

2. Create a virtual environment:

       λ cd django-localized-fields
       λ virtualenv env
       λ source env/bin/activate

3. Create a postgres user for use in tests (skip if your default user is a postgres superuser):

       λ createuser --superuser localized_fields --pwprompt
       λ export DATABASE_URL=postgres://localized_fields:<password>@localhost/localized_fields

   Hint: if you're using virtualenvwrapper, you might find it beneficial to put
   the ``export`` line in ``$VIRTUAL_ENV/bin/postactivate`` so that it's always
   available when using this virtualenv.

4. Install the development/test dependencies (the analysis tools need Python 3.9 or newer):

       λ pip install ".[dev]" ".[test]" ".[analysis]"

5. Run the tests:

       λ tox

   tox installs the matching Django and django-bleach versions for each environment.

6. Auto-format code, sort imports and auto-fix linting errors:

       λ poe fix
