I'm new to the list and mostly new to Django.
I am adding django-encrypted-model-fields to my Django project and one of the steps to install it is to generate a key using a ./manage.py command:
Traceback (most recent call last):
File "./manage.py", line 22, in <module>
execute_from_command_line(sys.argv)
File "/usr/local/lib/python3.6/site-packages/django/core/management/__init__.py", line 371, in execute_from_command_line
utility.execute()
File "/usr/local/lib/python3.6/site-packages/django/core/management/__init__.py", line 365, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/usr/local/lib/python3.6/site-packages/django/core/management/base.py", line 288, in run_from_argv
self.execute(*args, **cmd_options)
File "/usr/local/lib/python3.6/site-packages/django/core/management/base.py", line 335, in execute
output = self.handle(*args, **options)
File "/usr/local/lib/python3.6/site-packages/encrypted_model_fields/management/commands/generate_encryption_key.py", line 15, in handle
self.stdout.write(key, ending=b'\n')
File "/usr/local/lib/python3.6/site-packages/django/core/management/base.py", line 106, in write
self._out.write(style_func(msg))
TypeError: write() argument must be str, not bytes
I have found a workaround for this, decoding output before writing to stdout, on django/core/management/base.py, line 106:
$ diff django/core/management/base.py-original django/core/management/base.py
106c106
< self._out.write(style_func(msg))
---
> self._out.write(style_func(msg).decode(self._out.encoding))
Do I have to do a pull request to Django or try to debug django-encrypted-model-fields and talk to their developers?