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

315
Visualizações
Warning: Auto-created primary key used when not defining a primary key type, by default 'django.db.models.AutoField'

Why this is showing a warning as it default take the primary key from the User model so should I also declare the primary key the Registration or candidate model again. models.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)

problem occured

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, e.g. 'django.db.models.BigAutoField'.
over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

When you define a model in Django without specifying a primary key, Django will automatically create a primary key for you. The primary key is set to be an integer. If you want to override the field type, you can do so on a per model basis.

Starting in Django 3.2, you can now customise the type of the automatically created primary key in your settings.

Starting new projects in Django 3.2, the default type for primary keys is set to a BigAutoField which is a 64 bit integer. However, earlier versions set the type of implicit primary keys to be integers.

This means that when you upgrade to 3.2, you will start to see warnings about the fact that you do not have an explicitly defined primary key type. Satisfying Django's requirements for an explicitly set primary key type is easy enough, but you also need to choose whether or not you want to upgrade your primary key field types from integer to 64 bit integer.

There are a few ways to fix this. Broadly speaking they fall into two categories

Configure DEFAULT_AUTO_FIELD in settings

Open your project's settings.py and add a new line at the bottom of the file

DEFAULT_AUTO_FIELD = 'django.db.models.AutoField'

Setting on a per app basis

If you prefer to set your field type on a per app basis rather than for the whole project, you can specify this in apps.py.

from django.apps import AppConfig

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

Set AutoField or BigAutoField on a per model basis

If you prefer even more fine grained control, you can set a per model id field.

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

0

It's because in Django 3.2, primary keys are not created by default and you should define them manually, or you can configure it to be created automatically in your settings.py. Note that in newly-created Django 3.2 projects, it's added in your settings.py automatically and you don't need to do this.

This question has been answered in stackoverflow before here is the link.

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