In my Django application I have the following model:
class Provider(models.Model):
user = models.OneToOneField(CustomUser, on_delete=models.CASCADE, primary_key=True)
company = models.ForeignKey(Company, on_delete=models.CASCADE)
def __str__(self):
return str(self.user)
Note user
is a OneToOneField to my CustomUser table and also the primary key of this table.
In views.py
, I attempt to query this table with Provider.objects.filter(user=request.user)
and get django.db.utils.OperationalError: (1054, "Unknown column 'appname_provider.user_id' in 'field list'")
. Checking my MySql database, I see the columns are (user, company_id)
. So why is Django adding "_id" to user
when I try to filter?
My CustomUser model:
class CustomUser(AbstractUser):
is_provider = models.BooleanField()
is_admin = models.BooleanField()
first_name = models.CharField(max_length=128)
last_name = models.CharField(max_length=128)
email = models.EmailField(unique=True)
REQUIRED_FIELDS = ["is_provider", "email"]
objects = CustomUserManager()
def __str__(self):
return str(self.username)