La solución de mmcnickle puede funcionar y parece razonable, pero prefiero un proceso de dos pasos. En el primer paso, cambia el nombre de la tabla.
En su modelo de asegurarse de que su nuevo nombre de tabla en:
class Meta:
db_table = new_table_name'
Luego, como mmcnickle sugirió, crear una migración personalizada:
python manage.py schemamigration xyz migration_name --empty
Usted puede leer más sobre esto aquí: https://docs.djangoproject.com/en/dev/ref/models/options/
Ahora con su migración personalizada también agregue la línea para cambiar el nombre de su tabla hacia adelante y hacia atrás:
db.rename_table("old_table_name","new_table_name")
Esto puede ser suficiente para migrar y cambiar el nombre de la tabla, pero si antes ha utilizado el nombre de la tabla personalizada de Class Meta, tendrá que hacer un poco más. Así que, como regla general, solo para estar seguro haga una búsqueda en su archivo de migración para "old_table_name" y cambie las entradas que encuentre al nuevo nombre de la tabla. Por ejemplo, si previamente estaba utilizando el nombre de la tabla personalizada Meta clase, es probable que vea:
'Meta': {'object_name': 'ModelNameYouWillChangeNext', 'db_table': "u'old_table_name'"},
por lo que tendrá que cambiar el viejo nombre de la tabla a la nueva.
Ahora se puede migrar con:
python manage.py migrate xyz
En este punto su aplicación debe ejecutarse desde todo lo que han hecho es cambiar el nombre de la tabla y decirle a Django a buscar el nuevo nombre de la tabla.
El segundo paso es cambiar el nombre de su modelo. La dificultad de esto realmente depende de su aplicación, pero básicamente solo necesita cambiar todo el código que hace referencia al nombre del modelo antiguo al código que hace referencia al nuevo nombre del modelo. También es probable que necesite cambiar algunos nombres de archivos y nombres de directorios si ha utilizado su antiguo nombre de modelo para fines de organización.
Después de hacer esto, su aplicación debería funcionar bien. En este punto, su tarea se ha completado bastante y su aplicación debería funcionar correctamente con un nuevo nombre de modelo y un nuevo nombre de tabla. El único problema con el que se encontrará al usar South es la próxima vez que cree una migración mediante su función de detección automática, intentará eliminar la tabla anterior y crear una nueva desde cero porque ha detectado su nuevo nombre de modelo. Para solucionar este problema es necesario crear otra migración personalizada:
python manage.py schemamigration xyz tell_south_we_changed_the_model_name_for_old_model_name --empty
Lo bueno es que aquí no se hace nada, puesto que ya ha cambiado el nombre del modelo de manera Sur recoge esto. Sólo migrar con "pase" en el migran hacia delante y hacia atrás:
python manage.py migrate xyz
No se hace nada y el Sur ahora se da cuenta de que está al día. Proveedores:
python manage.py schemamigration xyz --auto
y debería ver detecta nada ha cambiado
y desea que este hecho en administrador? si es así, http://stackoverflow.com/questions/7413488/where-do-i-customize-the-heading-for-the-modeladmin-view/7414247#7414247 debería ayudar – Pannu
Sí, es muy cierto. pero aún necesito cambiar los nombres de los modles, por adherencia a pep-8. – whatf