Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

268
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda