Tengo 2 modelos User , que es auth_user de Django, y HostCourse , que tiene una relación de muchos a muchos con User
class HostCourse(TimeStamped, models.Model): created_by = models.ManyToManyField(User, blank=True) ...Estoy usando Postgresql y estoy tratando de eliminar los datos en HostCourse de dbshell.
delete from courses_hostcourse;Cuando elimino algunos datos de HostCourse , arroja el siguiente error:
ERROR: update or delete on table "courses_hostcourse" violates foreign key constraint "courses_hostcourse_c_hostcourse_id_ec1070c3_fk_courses_h" on table "courses_hostcourse_created_by"
Si on_delete=models.CASCASE , ¿también eliminará a los usuarios del respectivo HostCourse ? En caso afirmativo, ¿cómo puedo encontrar una solución para que elimine cursos y no usuarios?
Bueno, por lo general lo harías en el shell de python de esta manera:
./manage.py shell >>> HostCourse.objects.all().delete()ManyToManyField crea una nueva tabla, por lo que primero desea eliminar todos los objetos allí. Los usuarios no se eliminarán en el db_shell que haría:
delete from courses_hostcourse_created_by; delete from courses_hostcourse;