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

320
Visualizações
Advertencia: la clave principal creada automáticamente se usa cuando no se define un tipo de clave principal, por defecto 'django.db.models.AutoField'

Por qué esto muestra una advertencia, ya que por defecto toma la clave principal del modelo de usuario, así que también debo declarar la clave principal del modelo de registro o candidato nuevamente. modelos.py

 from django.db import models from django.contrib.auth.models import User # Create your models here. class Registration(models.Model): fname = models.CharField(max_length=30) lname = models.CharField(max_length=30) # phone = models.BigIntegerField(max_length=10,primary_key=True) dob=models.DateField() user = models.OneToOneField(User,on_delete=models.CASCADE,primary_key=True) def __str__(self): return self.fname class candidate(models.Model): full_name = models.CharField(max_length=30) position = models.CharField(max_length=30) total_vote = models.IntegerField(default=0) def __str__(self): return "{} -- {}".format(self.full_name,self.position)

ocurrió un problema

 WARNINGS: poll.candidate: (models.W042) Auto-created primary key used when not defining a primary key type, by default 'django.db.models.AutoField'. HINT: Configure the DEFAULT_AUTO_FIELD setting or the PollConfig.default_auto_field attribute to point to a subclass of AutoField, eg 'django.db.models.BigAutoField'.
over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Cuando define un modelo en Django sin especificar una clave principal, Django creará automáticamente una clave principal para usted. La clave principal está configurada para ser un número entero. Si desea anular el tipo de campo, puede hacerlo por modelo.

A partir de Django 3.2, ahora puede personalizar el tipo de clave principal creada automáticamente en su configuración.

Al iniciar nuevos proyectos en Django 3.2, el tipo predeterminado para las claves principales se establece en BigAutoField, que es un número entero de 64 bits. Sin embargo, las versiones anteriores establecen el tipo de claves primarias implícitas en números enteros.

Esto significa que cuando actualice a 3.2, comenzará a ver advertencias sobre el hecho de que no tiene un tipo de clave principal definido explícitamente. Satisfacer los requisitos de Django para un tipo de clave principal establecido explícitamente es bastante fácil, pero también debe elegir si desea o no actualizar sus tipos de campo de clave principal de entero a entero de 64 bits.

Hay algunas maneras de arreglar esto. En términos generales, se dividen en dos categorías.

Configurar DEFAULT_AUTO_FIELD en la configuración

Abra el archivo settings.py de su proyecto y agregue una nueva línea en la parte inferior del archivo.

 DEFAULT_AUTO_FIELD = 'django.db.models.AutoField'

Configuración por aplicación

Si prefiere establecer su tipo de campo por aplicación en lugar de para todo el proyecto, puede especificarlo en apps.py.

 from django.apps import AppConfig class MyappConfig(AppConfig): default_auto_field = 'django.db.models.AutoField' name = 'Myapp'

Establezca AutoField o BigAutoField según el modelo

Si prefiere un control aún más detallado, puede establecer un campo de ID por modelo.

 class Model1(models.Model): id = models.BigAutoField(primary_key=True)
over 4 years ago · Santiago Trujillo Relatório

0

Es porque en Django 3.2, las claves principales no se crean de forma predeterminada y debe definirlas manualmente, o puede configurarlas para que se creen automáticamente en su settings.py . Tenga en cuenta que en los proyectos Django 3.2 recién creados, se agrega en su settings.py automáticamente y no necesita hacer esto.

Esta pregunta ha sido respondida en stackoverflow antes aquí está el enlace .

over 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