On Fri, Dec 29, 2017 at 5:59 AM, emi <emidar...@gmail.com> wrote:

> Hello all!
> 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:
> $ ./manage.py generate_encryption_key
>
> When executing it, an error is raised:
> 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?
>

I don't think you should patch the core management for only a third-party
app, instead you should modify the third-party to match what django expects
(i.e. convert to string at generate_encryption_key.py). I think you may
contact their developers for including it on the package


>
> Thanks in advance!
> em and best regardsi
>
> --
> You received this message because you are subscribed to the Google Groups
> "Django users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to django-users+unsubscr...@googlegroups.com.
> To post to this group, send email to django-users@googlegroups.com.
> Visit this group at https://groups.google.com/group/django-users.
> To view this discussion on the web visit https://groups.google.com/d/
> msgid/django-users/b7372388-ea45-4ec7-b62e-84d0540a365a%40googlegroups.com
> <https://groups.google.com/d/msgid/django-users/b7372388-ea45-4ec7-b62e-84d0540a365a%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to django-users+unsubscr...@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/CA%2BFDnhLbke9V9e6kZqSeZv7VO4ZVJKNqwfkgj6Ojf6Yhx1DnGw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to