Django: в ссылающейся таблице 'tcReports_global_users' нет первичных или кандидатных ключей, совпадающих со списком столбцов ссылающейся таблицы во внешнем ключе 'fk
Вот мой models.py:
from django.db import models
from django.contrib.auth.models import AbstractBaseUser
from django.contrib.auth.models import UserManager
class TcreportsGlobalApps(models.Model):
appid = models.AutoField(db_column='appID', primary_key=True) # Field name made lowercase.
path = models.TextField()
name = models.TextField()
stableversion = models.CharField(db_column='stableVersion', max_length=10) # Field name made lowercase.
devversion = models.CharField(db_column='devVersion', max_length=10) # Field name made lowercase.
apptype = models.CharField(db_column='appType', max_length=100, blank=True, null=True) # Field name made lowercase.
appdepartment = models.CharField(db_column='appDepartment', max_length=100, blank=True, null=True) # Field name made lowercase.
islive = models.BooleanField(db_column='isLive', blank=True, null=True) # Field name made lowercase.
description = models.TextField(blank=True, null=True)
class Meta:
db_table = 'tcReports_global_apps'
class TcreportsGlobalLog(models.Model):
id = models.BigAutoField(primary_key=True)
log = models.TextField()
created_at = models.DateTimeField()
class Meta:
db_table = 'tcReports_global_log'
class TcreportsGlobalPermissions(models.Model):
appid = models.AutoField(db_column='appID', blank=True, primary_key=True) # Field name made lowercase.
userid = models.IntegerField(db_column='userID', blank=True, null=True) # Field name made lowercase.
permissions = models.BooleanField(blank=True, null=True)
class Meta:
db_table = 'tcReports_global_permissions'
class CustomUserManager(UserManager):
def create_user(self, username, password=None):
if not username:
raise ValueError('Users must have an username')
user = self.model(username=username)
user.set_password(password)
user.save(using=self._db)
user.userid = user.pk
user.save()
return user
def create_superuser(self, username, password, email=None):
user = self.create_user(
username=username,
password=password,
)
user.is_superuser = True
user.save(using=self._db)
user.userid = user.pk
return user
class TcreportsGlobalUsers(AbstractBaseUser):
userid = models.AutoField(db_column='userID', blank=True, primary_key=True) # Field name made lowercase.
username = models.CharField(max_length=100, blank=True, null=True, unique=True)
sessiontoken = models.CharField(db_column='sessionToken', max_length=64, blank=True, null=True) # Field name made lowercase.
sessiontokenexpiry = models.DateTimeField(db_column='sessionTokenExpiry', blank=True, null=True) # Field name made lowercase.
objects = CustomUserManager()
USERNAME_FIELD = 'username'
class Meta:
db_table = 'tcReports_global_users'
Я запустил python3 manage.py inspectdb
на старой базе данных и внес основные изменения в созданный models.py. Каждое AutoField (не BigAutoField) было IntegerField, и я добавил primary_key=True
к каждому полю *id
. Я импортировал данные и схему из этой старой базы данных с помощью sql файла. база данных - mssql. Я получаю ошибку, указанную в заголовке. Вот полный отслеживание:
Что это значит? Что я могу сделать для отладки? Любая помощь будет принята с благодарностью. Спасибо