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
Python 无法创建Django模型的实例_Python_Django_Python 3.x_Postgresql_Django 2.1 - Fatal编程技术网

Python 无法创建Django模型的实例

Python 无法创建Django模型的实例,python,django,python-3.x,postgresql,django-2.1,Python,Django,Python 3.x,Postgresql,Django 2.1,我正在尝试创建此报表模型的实例: class Report(models.Model): """ A model for storing credit reports pulled from Equifax. """ user = models.ForeignKey(to=CustomUserModel, on_delete=models.CASCADE, help_text='User report be

我正在尝试创建此报表模型的实例:

class Report(models.Model):
    """
    A model for storing credit reports pulled from Equifax.
    """
    user = models.ForeignKey(to=CustomUserModel, on_delete=models.CASCADE,
                             help_text='User report belongs to.')

    timestamp = models.DateTimeField(default=timezone.now)
    report = JSONField()
但是,无论何时尝试,都会出现以下错误:

Exception Type: TypeError at /internal/report
Exception Value: 'report' is an invalid keyword argument for this function
无论是使用
Report().save()
方法还是
Report.object.create()
方法实例化实例,都会发生这种情况,如下所示:

    report_obj = Report.objects.create(
        user=user,
        report=report
    )
有人知道发生了什么事吗?该类显然有一个“report”属性,那么为什么会出现错误呢


谢谢

根据错误和:

(…)看起来像是我从DRF导入了表单字段,而不是从Django导入了同名的模型字段(…)

您没有导入模型字段,而是导入其他字段(例如表单字段,或者这里是DRF字段)。因此,Django不认为<代码>报表<代码>是您的代码>报告< /C>模块的一个字段,它将其视为“香草”Python属性。< /P> 因此,您应该确保
JSONField
链接到模型字段类。添加此类字段可能会导致另一次迁移,以将该字段添加到数据库表中:

from django.contrib.postgres.fields import JSONField

class Report(models.Model):
    """
    A model for storing credit reports pulled from Equifax.
    """
    user = models.ForeignKey(to=CustomUserModel, on_delete=models.CASCADE,
                             help_text='User report belongs to.')

    timestamp = models.DateTimeField(default=timezone.now)
    report = JSONField()
从django.contrib.postgres.fields导入JSONField
课堂报告(models.Model):
"""
存储从Equifax提取的信用报告的模型。
"""
user=models.ForeignKey(to=CustomUserModel,on_delete=models.CASCADE,
help_text='User report属于')
timestamp=models.DateTimeField(默认值=timezone.now)

report=JSONField()
这里的
JSONField
来自哪里?这是一个模型场吗?还是一个表单字段?@WillemVanOnsem好吧,操我。看起来我从DRF导入了表单字段,而不是从Django导入了同名的模型字段。如果你想把它作为一个答案,我会给你信用。