Django数据库创建或更新错误
因此,pcaps表的定义为:Django数据库创建或更新错误,django,python-3.x,postgresql,django-models,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.
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)
视图文件中的代码是:
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
值)
我在这里犯了什么错误?问题是您正在将
filehash
值参数设置为哈希字符串,而filehash
是一个ForeignKey
字段,默认为整数
您可能打算首先创建恶意软件
记录:
malware = Malwares.objects.create(name="name", filehash=malwarehash)
Pcaps.objects.update_or_create(filename=pcapname, filehash=malware, systemuuid=uuid)
恶意软件.objects.update\u或\u create(name=name,filehash=malwarehash)这是在代码的其他地方完成的,数据库是populated@dipl0好的,那么,在“更新或创建”
pcap
时,获取对“更新或创建”malware
实例的引用,并将其用作filehash
参数的值。希望有帮助。filehashforeignkey=malware.objects.get(filehash=filehash)uuid=ClonedSystem.objects.get(uuid=uuid)Pcaps.objects.update_或_create(filename=pcapname,filehash=filehashforeignkey,systemuuid=uuid)