我和this post的用户遇到了同样的问题,但是,所有建议的解决方案对我都不起作用。我使用的是MySQL 8.0.24和Django 3.1。
与他们类似,我有一个没有unique_together
字段的模型,如下所示
class Show(models.Model):
english_name = models.CharField(max_length=400)
kanji_name = models.CharField(max_length=200, blank=True)
romanji_name = models.CharField(max_length=400, blank=True)
show_type = models.CharField(max_length=100, blank=True)
# a bunch of other fields...
class Meta:
verbose_name_plural = 'Series'
ordering = ('-created',)
unique_together = ['english_name', 'kanji_name', 'romanji_name', 'show_type']
def __str__(self):
return self.english_name
直到我把class Meta
改成这个
class Meta:
verbose_name_plural = 'Series'
ordering = ('-created',)
unique_together = ['english_name', 'kanji_name', 'romanji_name', 'show_type']
每当我迁移数据库时,我就开始收到此错误。
django.db.utils.OperationalError: (1071, 'Specified key was too long; max key length is 3072 bytes')
我按照我上面链接的帖子中的步骤来确保使用了utf8,我能够确认数据集正在使用该字符集,但这并没有解决我的问题。我还能做些什么来确保unique_together
字段可以使用呢?
1条答案
按热度按时间qeeaahzv1#
我只是决定去掉这个字段,而在上传电子表格数据时使用
exists()
检查数据库,以确保没有重复的条目。