Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django数据库创建或更新错误_Django_Python 3.x_Postgresql_Django Models - Fatal编程技术网

Django数据库创建或更新错误

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.

因此,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)
视图文件中的代码是:

    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)