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

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

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 Report

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 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!