Django数据库create_or_update错误

时间:2018-01-06 16:46:27

标签: django python-3.x postgresql django-models

因此pcaps表的定义是:

class Pcaps(models.Model):
    uuid = models.CharField(max_length=50, unique=True)
    filename = models.CharField(max_length=200, default='')
    datetime = models.DateTimeField(default=datetime.now, blank=True)
    filehash = models.ForeignKey(Malwares)
    systemuuid = models.ForeignKey(ClonedSystem)

恶意软件表的定义是:

class Malwares(models.Model):
    name = models.CharField(max_length=100)
    filehash = models.CharField(max_length=100, unique=True)

来自views文件的代码是:

    Pcaps.objects.update_or_create(filename=pcapname, filehash=filehash, systemuuid=uuid)

恶意软件值在以下位置实例化:

    Malwares.objects.update_or_create(name=name, filehash=malwarehash)

我得到的错误是:

  

对于基数为10的int()的无效文字:' ed01ebfbc9eb5bbea545af4d01bf5f1071661840480439c6e5babe8e080e41aa'

(ed01 ...是filehash值)

我在这里犯了什么错误?

1 个答案:

答案 0 :(得分:1)

问题是您将 filehash值参数设置为哈希字符串,而filehashForeignKey字段,它是一个整数默认值。

您可能打算首先创建Malwares记录:

malware = Malwares.objects.create(name="name", filehash=malwarehash)
Pcaps.objects.update_or_create(filename=pcapname, filehash=malware, systemuuid=uuid)