Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

266
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!