Невозможно создать экземпляр модели Django - PullRequest
0 голосов
/ 15 февраля 2019

Я пытаюсь создать экземпляр этой модели отчета:

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», так почему же ошибка?

Спасибо!

1 Ответ

0 голосов
/ 15 февраля 2019

На основании ошибки и комментария :

(...) Похоже, я импортировал поле формы из DRF вместо поля модели с тем же именемот Django (...)

Вы не импортировали JSONField, которое является полем модели, но что-то еще (например, поле или здесь поле DRF ).В результате Django не считает report полем вашего модуля Report, он видит его как атрибут * vanilla"Python.

Таким образом, вы должны убедиться, чтовместо этого JSONField ссылается на класс поля модели.Добавление такого поля, вероятно, приведет к другой миграции для добавления поля в таблицу базы данных:

from django.contrib.postgres.fields import <b>JSONField</b>

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()
...