Django迁移未检测到unique = True更改

时间:2019-01-04 11:19:45

标签: python django python-3.x postgresql

尝试将外键从CrackingJob.hash_mode_numeric添加到HashMappings后,出现以下错误。

最初,我试图在没有唯一约束的情况下直接将FK设置为​​HashMappings.hash_mode_numeric,它正确地给出了错误,但是在添加unique=True之后,我仍然得到错误。即使当我尝试仅将PK(自动生成的唯一ID)用作FK时,如下面的代码所示。

django.db.utils.ProgrammingError: there is no unique constraint
matching given keys for referenced table "appname_hashmappings"

相关代码:

class HashMappings(models.Model):
    hash_name = models.CharField(max_length=255, unique=True)
    hash_mode_numeric = models.IntegerField(unique=True)
    example_hash = models.TextField(max_length=2500)
    supported = models.BooleanField(default=0)

    class Meta:
        ordering = ['hash_name']

    def __str__(self):
        return f'{self.hash_name}'


class CrackingJob(models.Model):
    user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.SET_NULL)
    description = models.CharField(max_length=255)
    hash_mode_numeric = models.ForeignKey(HashMappings, on_delete=models.CASCADE)

1 个答案:

答案 0 :(得分:-1)

尝试清除哈希表中的数据,然后运行migration命令-> python manage.py migration