Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

275
Vistas
ManyToManyField hace referencia al campo 'id' cuando se usa una clave principal personalizada

Estoy usando una clave principal personalizada para un modelo que tiene algunos ManyToManyFields. Cuando actualizo el modelo y agrego un objeto a ManyToManyField (usando add(new_object)), aparece un error que indica que está buscando la clave principal usando el campo id (que quizás exista en la tabla intermedia, pero no en el modelo ).

 psycopg2.DataError: invalid input syntax for integer: "TL98GK" LINE 1: ...WHERE ("placedir_place_place_categ"."place_id" = 'TL98GK' A...

He estado buscando en SO durante un tiempo, pero no he podido concentrarme en el problema exacto. Supongo que tendré que usar una tabla personalizada para ManytoManyFields (como castigo por usar una clave principal personalizada) pero, sinceramente, no quiero seguir ese camino.

Usando Django 1.10 y Python 3

about 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Parece que la migración no detecta bien los cambios de tipo de clave externa. Es un error conocido. Aquí se menciona una solución alternativa (es decir, cambiar explícitamente el type de campo a varchar(32) ).

Sin embargo, es posible que deba hacer más (como actualizar las constraints , etc. en la tabla) según su caso de uso. (Para aquellos interesados en seguir esa ruta, aquí hay un caso de ejemplo con el código de migración correspondiente).

(ps, simplemente decidí no usar una clave principal personalizada en modelos con muchos campos)

about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda