所以 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)
View 文件中的代码是:
Pcaps.objects.update_or_create(filename=pcapname, filehash=filehash, systemuuid=uuid)
恶意软件值实例化于:
Malwares.objects.update_or_create(name=name, filehash=malwarehash)
我得到的错误是:
invalid literal for int() with base 10: 'ed01ebfbc9eb5bbea545af4d01bf5f1071661840480439c6e5babe8e080e41aa'
(ed01 ... 是 filehash
值)
我在这里犯了什么错误?
最佳答案
问题是您将 filehash
值参数设置为散列字符串,而 filehash
是 ForeignKey
字段,默认为整数。
您可能打算先创建Malwares
记录:
malware = Malwares.objects.create(name="name", filehash=malwarehash)
Pcaps.objects.update_or_create(filename=pcapname, filehash=malware, systemuuid=uuid)
关于Django 数据库创建或更新错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48129529/