Tengo un proyecto existente con modelos (usuarios y libros). Me gustaría agregar un campo ManyToMany (M2M) a los libros modelo existentes, pero el comando syncbb no lo hace.django agregando un campo/tabla ManyToMany al esquema existente, nombre_relacionado error
Detalles: Books ya tiene un campo FK que se asigna al usuario, y quiero agregar un nuevo campo M2M (lectores) que también se asigna al usuario. Como sabes, el syncdb de Django solo se preocupa por las tablas, por lo que agregar un campo normal es fácil, pero un M2M requiere una nueva tabla de unión (app_books_user), ¿no debería syncdb cmd agregar esto como cualquier otra tabla nueva? Creó mi otra mesa unida para el campo 'vendedores' del Libro.
Cuando ejecuté syncdb, inicialmente recibí un error que me ordenaba usar el argumento 'related_name' para ayudar a diferenciar las dos referencias al usuario. Yo agregué esos. Sin embargo, cuando ejecuto syncdb nuevamente, no crea la nueva tabla de unión (pero ahora está libre de errores). El nuevo campo existe cuando lo veo a través del Shell, pero no puedo usarlo b/c la tabla de unión no existe. Miré el código sql a través del cmd 'sqlall' e imprime el SQL para la nueva tabla, pero no se ejecuta.
¿Qué me estoy perdiendo? ¿Debo simplemente forzar el SQL (desde el sqlall) a través de mi navegador de base de datos? ¿Eso tendrá alguna repercusión? Código sigue:
Models.py
from django.contrib.auth.models import User
class Seller(models.Model):
...
class Books(models.Model):
name=models.CharField(max_length=50)
author=models.ForeignKey(User, related_name='creator')
readers=models.ManyToManyField(User, blank=True, related_name='viewers')
sellers=models.ManyToManyField(Seller)
Gracias
Pude resolver esto ampliando el usuario con un perfil de usuario y manteniendo los "lectores" allí. – rich