Python Django模型不会使用OneToOne字段进行迁移

Python Django模型不会使用OneToOne字段进行迁移,python,django,model,migration,relationship,Python,Django,Model,Migration,Relationship,当我尝试使用python manage.py migrate运行migrate我的新模型时,出现以下错误: AssertionError:OneToOneField()无效。ForeignKey的第一个参数必须是模型、模型名称或字符串“self” 这是我的型号.py: class Server_DefaultChannel(): channel_id = models.BigIntegerField(default=0) name = models.CharFie

当我尝试使用
python manage.py migrate
运行migrate我的新模型时,出现以下错误:

AssertionError:OneToOneField()无效。ForeignKey的第一个参数必须是模型、模型名称或字符串“self”

这是我的
型号.py

class Server_DefaultChannel():
  channel_id    = models.BigIntegerField(default=0)
  name          = models.CharField(default='undefined', max_length=32)
  channel_type  = models.IntegerField(default='-1')

class Server_Inviter(models.Model):
  avatar        = models.CharField(default='undefined', max_length=64)
  discriminator = models.IntegerField(default=0)      
  inviter_id    = models.BigIntegerField(default=0)
  username      = models.CharField(default='undefined', max_length=32)

class Server_Guild(models.Model):  
  features    = ArrayField(models.CharField(default = 'undefined', max_length = 64)) 
  icon        = models.CharField(default = 'undefined', max_length = 64)
  guild_id    = models.BigIntegerField(default=0)
  name        = models.CharField(default = 'undefined', max_length = 128)
  splash      = models.CharField(default = 'undefined', max_length = 64)
  description = models.CharField(default = 'undefined', max_length = 256)
  vanity_url  = models.CharField(default = 'undefined', max_length = 128) 

class Discord_Server(models.Model):
  approximate_member_count      = models.IntegerField(default=-1)
  approximate_presence_count    = models.IntegerField(default=-1)
  server_defaultchannel         = models.OneToOneField(Server_DefaultChannel, on_delete=models.PROTECT, null=True)
  code                          = models.CharField(max_length=32)
  server_guild                  = models.OneToOneField('migratefire.Server_Guild', on_delete=models.PROTECT, null=True)
  server_inviter                = models.OneToOneField('migratefire.Server_Inviter', on_delete=models.PROTECT, null=True)
  server_tags                   = ArrayField(models.CharField(default='none', max_length=16))
  last_checked                  = models.DateTimeField(default=0)`
我尝试将应用程序名称放在每个类的元字段中,我尝试使用字符串,但出现以下错误:

错误: migratefire.Discord\u Server.Server\u defaultchannel:(fields.E300)字段定义了与模型“migratefire.Server\u defaultchannel”的关系,该模型未安装或是抽象的。 migratefire.Discord\u Server.Server\u defaultchannel:(fields.E307)声明migratefire.Discord\u Server.Server\u defaultchannel字段时使用了对“migratefire.Server\u defaultchannel”的惰性引用,但应用程序“migratefire”不提供模型“Server\u defaultchannel”


请帮忙,我不知道为什么其他代码示例可以工作,而不是我的

我解决了自己的问题,我似乎忘记了传递
服务器\u DefaultChannel
类声明中的
models.Model
参数:

class Server_DefaultChannel(models.Model):
  channel_id    = models.BigIntegerField(default=0)
  name          = models.CharField(default='undefined', max_length=32)
  channel_type  = models.IntegerField(default='-1')
导致了成功的迁移