In Django 4.2, `process_lhs()` is called for IsNull lookups, which is how this bug came to appear. It was already there and could be reproduced on Django 3.2. The issue is when `LocalizedRef` is combined with a localized lookup. The lookup is unaware of the existing localized ref and adds another transform on top. This results in the expression becoming: ``` field->'en'->'en' ```
✅ | Tests | |
📝 | License | |
📦 | PyPi | |
![]() |
Django Versions | 2.0, 2.1, 2.2, 3.0, 3.1, 3.2, 4.0, 4.1, 4.2, 5.0 |
Python Versions | 3.6, 3.7, 3.8, 3.9, 3.10, 3.11 | |
📖 | Documentation | Read The Docs |
⚠️ | Upgrade | Upgrade fom v5.x |
🏁 | Installation | Installation Guide |
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.
⚠️ This README is for v6. See the v5.x
branch for v5.x.
Working with the code
Prerequisites
- PostgreSQL 12 or newer.
- Django 2.0 or newer.
- Python 3.6 or newer.
Getting started
-
Clone the repository:
λ git clone https://github.com/SectorLabs/django-localized-fields.git
-
Create a virtual environment:
λ cd django-localized-fields λ virtualenv env λ source env/bin/activate
-
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. -
Install the development/test dependencies:
λ pip install ".[test]" ".[analysis]"
-
Run the tests:
λ tox
-
Auto-format code, sort imports and auto-fix linting errors:
λ python setup.py fix