В моем приложении Django есть следующая модель:
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)
Примечание user
- это OneToOneField для моей таблицы CustomUser, а также первичный ключ этой таблицы.
В views.py
я пытаюсь запросить эту таблицу с помощью Provider.objects.filter(user=request.user)
и получаю django.db.utils.OperationalError: (1054, "Unknown column 'appname_provider.user_id' in 'field list'")
. Проверяя мою базу данных MySql, я вижу столбцы (user, company_id)
. Так почему Django добавляет «_id» к user
при попытке фильтрации?
Моя модель CustomUser:
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)