{"id":23571,"library":"django-deprecated-field","title":"django-deprecated-field","description":"Utility for marking Django DB fields as deprecated, enabling migration consistency with rolling deploys. Current version 0.1.1, supports Django 6, requires Python >=3.12. Low release cadence.","status":"active","version":"0.1.1","language":"python","source_language":"en","source_url":"https://github.com/kolonialno/django-deprecated-field","tags":["django","deprecated","migration","rolling-deploy"],"install":[{"cmd":"pip install django-deprecated-field","lang":"bash","label":"Install from PyPI"}],"dependencies":[{"reason":"Core dependency; works with Django 4.2+ but tested with 6.x","package":"django","optional":false}],"imports":[{"symbol":"DeprecatedField","correct":"from django_deprecated_field import DeprecatedField"}],"quickstart":{"code":"from django.db import models\nfrom django_deprecated_field import DeprecatedField\n\nclass MyModel(models.Model):\n    old_field = DeprecatedField(models.CharField(max_length=100), replacement='new_field')\n    new_field = models.CharField(max_length=100)","lang":"python","description":"Migrate old_field to new_field while allowing read access to old_field during rolling deploy."},"warnings":[{"message":"Using DeprecatedField without the `replacement` argument will not raise warnings on write, only reads of the deprecated field trigger the deprecation warning.","severity":"gotcha","affected_versions":">=0.1.0"},{"message":"Requires Python >=3.12; older Python versions are not supported.","severity":"breaking","affected_versions":"0.1.0+"},{"message":"DeprecatedField does NOT prevent writes to the deprecated field; it only warns on read. Write migration must be handled separately.","severity":"gotcha","affected_versions":">=0.1.0"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Use 'from django_deprecated_field import DeprecatedField'","cause":"Incorrect import path (e.g., from deprecated_field import DeprecatedField).","error":"ImportError: cannot import name 'DeprecatedField'"},{"fix":"Ensure you query the underlying field directly (e.g., MyModel.objects.filter(old_field__exact='value'))","cause":"Using DeprecatedField in a QuerySet filter or iteration expecting a standard field.","error":"TypeError: 'DeprecatedField' object is not iterable"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}