我正在尝试创建此报告模型的实例:
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
)
有人知道发生了什么吗?显然,该类具有“报告”属性,为什么会出错?
谢谢!
答案 0 :(得分:0)
基于错误和comment:
(...)好像我从DRF导入了表单字段,而不是从Django(...)导入了同名的模型字段
您没有导入作为模型字段的JSONField
,而是其他内容(例如 form 字段,或此处的 DRF 字段)。结果,Django不会将report
视为您的Report
模块的字段,而是将其视为“ vanilla ” Python属性。
因此,您应该确保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()