Solucionado (ver solução)
Solucionado
(ver solução)
7
respostas

A página principal da aplicação - UnicodeEncodeError at /

O código está completamente igual, no entanto o navegador retorna uma pagina de erro: UnicodeEncodeError at /

'ascii' codec can't encode character u'\xc1' in position 12: ordinal not in range(128)

Aparenta um erro de codificação de caracteres?! Como proceder?

7 respostas

Coloquei em todos os arquivos:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

E não mudou o erro..

solução!

ERRO SOLUCIONADO!

O problema era o seguinte, no Linux a area de trabalho possui acentuação:

Área de Trabalho E o manage.py tem problemas na hora da codificação do diretório por conta desse acento, foi só mudar o diretório que o código rodou normalmente.

Tem esse problema quando o Linux está em pt-br. Assim que puder, coloco essa observação no exercício que instala o Django.

Valeu pelo feedback.

Flávio, existe uma forma de contornar isso sem mudar de pasta?

Não conheço José. Não se preocupe, na prática, quando você for colocar um dia sua aplicação no ar, o server geralmente usa uma pasta sem acentuação. Tudo bem?

Tudo tranquilo. Ainda nesse assunto das acentuações: é possível centralizar as mensagens de retorno para que não tenha que ficar espalhando esse cabeçalho pelos arquivos do projeto?

Oi Jose,

vou ser "malandro" e passar um link do StackOverflow:

http://stackoverflow.com/questions/16768809/django-internationalization-minimal-example?lq=1

Nesse exemplo o autor configura um arquivo de mensagens para a locale de. No nosso caso deve ser br.

A única coisa que falta nesse exemplo é adicionar a pasta locale no arquivos settings.py:

LOCALE_PATHS = ( '/connectedin/locale', )

As mensagem ficam dentro de um arquivo com a extensão .po:

/connectedin/locale/br/LC_MESSAGES/django.po

Vc deve criar a pasta locale:

cd connectedin/
mkdir locale

E depois criar o arquivo .po com o comando:

django-admin.py makemessages -l br

Espero que ajude!

abs