Security News
Fluent Assertions Faces Backlash After Abandoning Open Source Licensing
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
django-deprecate-fields
Advanced tools
This package allows deprecating model fields and allows removing them in a backwards compatible manner.
pip install django-deprecate-fields
Assume the simple following model:
from django.db import models
class MyModel(models.Model):
field1 = models.CharField()
field2 = models.CharField()
In order to remove field1
, it should first be marked as deprecated:
from django.db import models
from django_deprecate_fields import deprecate_field
class MyModel(models.Model):
field1 = deprecate_field(models.CharField())
field2 = models.CharField()
Secondly, makemigrations
should be called, which will change the field to be nullable. Any lingering references to it
in your code will return None
(or optionally any value or callable passed to deprecate_field
as the
return_instead
argument)
Lastly, after the changes above have been deployed, field1
can then safely be removed in the model (plus another
makemigrations
run)
If you need the actual field to be returned when a django command other
than makemigrations
, migrate
or showmigrations
is run, you can specify the
DEPRECATE_FIELD_CUSTOM_MIGRATION_COMMAND
parameter in the settings.
For instance if you generate migrations with pgmakemigrations
instead of makemigrations
,
you can add this to your settings:
DEPRECATE_FIELD_CUSTOM_MIGRATION_COMMAND = {"pgmakemigrations"}
First of all, thank you very much for contributing to this project. Please base
your work on the master
branch and target master
in your pull request.
django-deprecate-fields
is released under the Apache 2.0 License.
FAQs
This package allows deprecating model fields and allows removing them in a backwards compatible manner.
We found that django-deprecate-fields demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 3 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
Research
Security News
Socket researchers uncover the risks of a malicious Python package targeting Discord developers.
Security News
The UK is proposing a bold ban on ransomware payments by public entities to disrupt cybercrime, protect critical services, and lead global cybersecurity efforts.