[英]Unable to create instance of Django model
我正在嘗試創建此Report模型的實例:
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
)
有人知道發生了什么嗎? 很明顯,該類具有“報告”屬性,那么為什么會出錯?
謝謝!
根據錯誤和注釋 :
(...)好像我從DRF導入了表單字段,而不是從Django(...)導入了同名的模型字段
您沒有導入作為模型字段的JSONField
,而是導入了其他字段(例如, 表單字段或此處的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()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.