Вы устанавливаете related_name
в:
class Author(models.Model):
user = models.OneToOneField(
User,
<b>related_name=<s>'user'</s></b>,
on_delete=models.SET_NULL, null=True
)
Но related_name
- это имя для доступа к связанному Author
из User
объекта (поэтому имя отношения в 1010 * обратная *).Таким образом, вы должны установить его на author
(или оставить его пустым), например:
class Author(models.Model):
user = models.OneToOneField(
User,
<b>related_name='author'</b>,
on_delete=models.SET_NULL, null=True
)
Установив его на user
, вы могли бы получить доступ к объекту Author
с помощью user.user
, ноЯ настоятельно советую , а не , чтобы сделать это, так как в конечном итоге это приведет только к коду, который трудно понять.Для Django это, конечно, не имеет значения (если нет двух отношений, начинающихся с User
, имеющих одинаковое имя), но для программистов это создает неправильное впечатление.