Might be that the cause of the below is somewhere else / somewhere upstream in django, but I am seeing the following.
I have an application that works find with a json field on a model. I can delete that model just fine from the UI that have build, running with runserver
or uwsgi
etc. It also runs fine if I try to delete model instances from a management command.
File "./manage.py", line 11, in <module>
execute_from_command_line(sys.argv)
File "/home/valentijn/venv/lib/python3.8/site-packages/django/core/management/__init__.py", line 381, in execute_from_command_line
utility.execute()
File "/home/valentijn/venv/lib/python3.8/site-packages/django/core/management/__init__.py", line 375, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/home/valentijn/venv/lib/python3.8/site-packages/django/core/management/base.py", line 323, in run_from_argv
self.execute(*args, **cmd_options)
File "/home/valentijn/venv/lib/python3.8/site-packages/django/core/management/base.py", line 364, in execute
output = self.handle(*args, **options)
File "/home/valentijn/dd/dojo/management/commands/test_valentijn5.py", line 10, in handle
engagement.delete()
File "/home/valentijn/dd/dojo/models.py", line 1042, in delete
super().delete(*args, **kwargs)
File "/home/valentijn/venv/lib/python3.8/site-packages/django/db/models/base.py", line 921, in delete
collector.collect([self], keep_parents=keep_parents)
File "/home/valentijn/venv/lib/python3.8/site-packages/django/db/models/deletion.py", line 224, in collect
field.remote_field.on_delete(self, field, sub_objs, self.using)
File "/home/valentijn/venv/lib/python3.8/site-packages/django/db/models/deletion.py", line 15, in CASCADE
collector.collect(sub_objs, source=field.remote_field.model,
File "/home/valentijn/venv/lib/python3.8/site-packages/django/db/models/deletion.py", line 223, in collect
elif sub_objs:
File "/home/valentijn/venv/lib/python3.8/site-packages/django/db/models/query.py", line 278, in __bool__
self._fetch_all()
File "/home/valentijn/venv/lib/python3.8/site-packages/django/db/models/query.py", line 1242, in _fetch_all
self._result_cache = list(self._iterable_class(self))
File "/home/valentijn/venv/lib/python3.8/site-packages/django/db/models/query.py", line 72, in __iter__
for row in compiler.results_iter(results):
File "/home/valentijn/venv/lib/python3.8/site-packages/django/db/models/sql/compiler.py", line 1086, in apply_converters
value = converter(value, expression, connection)
File "/home/valentijn/venv/lib/python3.8/site-packages/django_jsonfield_backport/models.py", line 111, in from_db_value
if connection.features.has_native_json_field and self.decoder is None:
AttributeError: 'DatabaseFeatures' object has no attribute 'has_native_json_field'
from django_jsonfield_backport.features import extend_features
from django.db import connection
class Command(BaseCommand):
def handle(self, *args, **options):
extend_features(connection)
.... do_stuff ....