簡體   English   中英

無法創建Django模型的實例

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM