Foros del Web » Programando para Internet » Python »

Duda con Django y syncdb

Estas en el tema de Duda con Django y syncdb en el foro de Python en Foros del Web. Estoy creando mi proyecto en el servidor local de Django, siguiendo la guía oficial, pero me he encontrado con un problema. Creé el models.py, pero ...
  #1 (permalink)  
Antiguo 04/11/2011, 15:31
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 14 años, 5 meses
Puntos: 310
Duda con Django y syncdb

Estoy creando mi proyecto en el servidor local de Django, siguiendo la guía oficial, pero me he encontrado con un problema. Creé el models.py, pero me acabo de dar cuenta de que en uno de los modelos me faltó una columna por añadir, así que he ido, la he añadido, y he corrido:
Código:
python manage.py syncdb
Y, claro está, no funcionó. Para comprobar hice esto:
Código:
python manage.py sql foo
Y me salió el SQL correcto de las tablas, con la nueva columna incluida. Entonces fui al tutorial de Django, y dice:
Cita:
This creates all the tables, initial data and indexes for any apps you have added to your project since the last time you ran syncdb. syncdb can be called as often as you like, and it will only ever create the tables that don't exist.
Como la tabla ya existe, no la crea otra vez, y por tanto no la modifica. Mi pregunta es, ¿tengo que hacerlo a mano, con código SQL, o habrá algún comando en manage.py? He intentado con python manage.py, pero no me atrevo a ejecutar ninguno por sus posibles consecuencias
Saludos y gracias :D
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #2 (permalink)  
Antiguo 04/11/2011, 18:58
 
Fecha de Ingreso: abril-2010
Mensajes: 13
Antigüedad: 14 años, 7 meses
Puntos: 6
Respuesta: Duda con Django y syncdb

Yo en un libro que leí vi que para hacer lo que tu quieres, lo hizo a mano en la base de datos y puso los cambios en models.py (que ya lo hiciste)
  #3 (permalink)  
Antiguo 04/11/2011, 20:51
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: Duda con Django y syncdb

Si tienes que actualizar la tabla a mano.

O puedes hacer lo siguiente, borrar todo y volver hacer un syncdb.

Si no tienes información en los models entonces la segunda opción es mas conveniente. Si tienes información entonces a modificar tablas se ha dicho.

Para la segunda opción haces esto:
Código Python:
Ver original
  1. python manage.py reset <appname>
  2. python manage.py syncdb
  #4 (permalink)  
Antiguo 05/11/2011, 14:59
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 14 años, 5 meses
Puntos: 310
Respuesta: Duda con Django y syncdb

Pues nada, al final como no tenía todavía nada hice un DROP TABLE y después con syncdb la volví a crear, pero es un poco rollo hacerlo así, debería haber alguna utilidad para actualizar los campos de una tabla
Por cierto, en los templates, ¿cómo puedo poner acentos sin que me salga este error?
Cita:
Iniciado por Django
Caught UnicodeDecodeError while rendering: 'utf8' codec can't decode byte 0xe1 in position 188: invalid continuation byte
Pensé en usar el encoding como en los .py, pero al fin y al cabo es un .html, no creo que sea la solución.
Saludos (:
Edit: Me acaba de salir, también pasa con el CMS: no me deja meter strings con acentos D:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red

Última edición por _cronos2; 05/11/2011 a las 16:43
  #5 (permalink)  
Antiguo 05/11/2011, 20:30
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: Duda con Django y syncdb

Lo que pasa es que tu encoding no es utf-8, django por default maneja utf-8 como encoding, por ejemplo la mía (windows 7 versión latina) es cp1252 así que tengo que cambiar el encoding en los settings con la variable FILE_CHARSET.

Otra buena opción es dejar todos los templates en ascii y poner acentos como código html.
  #6 (permalink)  
Antiguo 06/11/2011, 08:06
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 14 años, 5 meses
Puntos: 310
Respuesta: Duda con Django y syncdb

¿Y cómo puedo saber cuál es el encoding de mi sistema? He buscado en Google y en varios temas de stackoverflow dicen que vaya al Panel de control, configuración de región e idioma, y la pestaña de avanzado; pero no me sale ningún charset, sólo me dice:
Cita:
Esta configuración controla el idioma usado al mostrar texto en programas no compatibes con Unicode
Y debajo un select donde tengo puesto Español (España). ¿Dónde puedo saber cuál es mi encoding de verdad?
Saludos (:
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red
  #7 (permalink)  
Antiguo 06/11/2011, 19:19
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: Duda con Django y syncdb

Bueno eso depende de tu editor de texto o IDE, pero lo puedes configurar para que use UTF-8 o cualquier otro editor encoding que tu quieras.

Última edición por razpeitia; 07/11/2011 a las 14:02
  #8 (permalink)  
Antiguo 07/11/2011, 13:57
Avatar de _cronos2
Colaborador
 
Fecha de Ingreso: junio-2010
Mensajes: 2.062
Antigüedad: 14 años, 5 meses
Puntos: 310
Respuesta: Duda con Django y syncdb

Cita:
Iniciado por razpeitia Ver Mensaje
Bueno eso depende de tu editor de texto o IDE, pero lo puedes configurar para que use UTF-8 o cualquier otro editor que tu quieras.
OH SH**, resulta que el Notepad++ me estaba codificando los archivos en ANSI, en cuanto lo cambié a UTF-8 no hubo ningún problema, puedo poner acentos sin usar entidades HTML :)
+1000
__________________
" Getting older’s not been on my plans
but it’s never late, it’s never late enough for me to stay. "
Cigarettes - Russian Red

Etiquetas: django
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:45.