Django: 'Couldn't reconstruct field' on subclass of `OneToOneField`.

Я создал поле Extends с этой супер короткой декларацией:

class Extends(models.OneToOneField):
    def __init__(self, to, **kwargs):
        super().__init__(
            to,
            on_delete=models.CASCADE,
            primary_key=True,
            **kwargs
        )

Однако, если я использую это как поле в модели, скажем

class Person(models.Model):
    user = Extends(User)

При выполнении миграций я получаю следующую ошибку:

TypeError: Couldn't reconstruct field user on app.Person: Extends.__init__() missing 1 required positional argument: 'to'

Мне трудно понять, что это значит. Как я могу это исправить?

Попробуйте так:

class Extends(models.OneToOneField):
   def __init__(self, *args, **kwargs):
        kwargs["on_delete"] = models.CASCADE
        kwargs["primary_key"] = True
        super().__init__(*args, **kwargs)
Вернуться на верх