Чего не хватает в этой python django модели? Что не так? - PullRequest
1 голос
/ 13 апреля 2020

Здравствуйте! При попытке выполнить миграцию в моей модели django возникла ошибка. Похоже, там чего-то не хватает, например, «к», но что это значит?:

class Planificare_concedii(BaseModel):
    class Meta:
        verbose_name = _('planificare concedii')
        verbose_name_plural = _('planificare concedii')

    persoana = models.ForeignKey(
        on_delete=models.CASCADE,
        null=False,
        blank=False,
        verbose_name=_('persoana')
    )
    magazin = models.ForeignKey(
        on_delete=models.CASCADE,
        null=False,
        blank=False,
        verbose_name=_('magazinul')
    )
    marca = models.ForeignKey(
        on_delete=models.CASCADE,
        null=False,
        blank=False,
        verbose_name=_('marca')
    )
    an = models.ForeignKey(
        on_delete=models.CASCADE,
        null=False,
        blank=False,
        verbose_name=_('anul')
    )
    data_inceput = models.ForeignKey(
        on_delete=models.CASCADE,
        null=False,
        blank=False,
        verbose_name=_('data inceput')
    )
    data_sfarsit = models.ForeignKey(
        on_delete=models.CASCADE,
        null=False,
        blank=False,
        verbose_name=_('data sfarsit')
    )
    tip_concediu = models.ForeignKey(
        on_delete=models.CASCADE,
        null=False,
        blank=False,
        verbose_name=_('tip concediu')
    )

Это ошибка, которую я получил, и я точно не знаю что там отсутствует или что не так ...

TypeError: __init__() missing 1 required positional argument: 'to'

1 Ответ

3 голосов
/ 13 апреля 2020

У всех ваших ForeignKey нет модели, на которую они указывают. Таким образом, вам нужно указать модель (через идентификатор или строку) ToModel, на которую она указывает, например:

persoana = models.ForeignKey(
    <b>ToModel</b>,
    on_delete=models.CASCADE,
    null=False,
    blank=False,
    verbose_name=_('persoana')
)

A ForeignKey должна ссылаться на неабстрактную другую модель , Django будет (пытаться) обеспечить ссылочную целостность, добавив ограничение FOREIGN KEY, учитывая, что база данных это поддерживает.

Если вы хотите ссылаться на объект в большинстве моделей, вы можете использовать GenericForeignKey, что означает, что у вас есть ForeignKey к ContentType и поле, содержащее первичный ключ. Но обычно обычно используют GenericForeignKey, так как ссылочная целостность больше не может быть гарантирована, а сложные запросы с Django ORM сложнее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...