0

i added a str default to foreign key but when i tried to create superuser i got error with this argument :

 ValueError: Field 'id' expected a number but got 'personal'.

heres my code :

class Genders(models.Model):
    get_gender = models.TextField()

class CustomUser(AbstractUser):
    age = models.PositiveIntegerField(null=True,validators=[
        MaxValueValidator(100),MinValueValidator(6)])

    gender = models.ForeignKey(Genders,default='personal',on_delete=models.CASCADE)

can you help with this problem ? im learning django cant debug yet but i thought maybe problem is that superuser doesnt have a gender value

1 Answers1

1

You need to pass ID not a gender name because ForeignKey needs to ID not a gender name

    class Genders(models.Model):
        get_gender = models.TextField()

    class CustomUser(AbstractUser):
        age = models.PositiveIntegerField(null=True,validators=[
            MaxValueValidator(100),MinValueValidator(6)])
    
        gender = models.ForeignKey(Genders,default='1',on_delete=models.CASCADE)