Если у вас есть ManyToManyField
, определяющий отношения между Автором и Книгой, вы должны передать книгу в author.some_func
.Это связано с тем, что у автора может быть несколько книг, и вам нужно выбрать конкретную книгу для выполнения операции.
Если вы изменили отношение на:
class Book(models.Model):
author = ForeignKey(Author, settings)
У вас все еще естьтот же вопрос, что и автор, все равно сможет написать несколько книг.Вы могли бы сделать то, что вы хотите, если бы вы переместили метод на Book
:
book.some_func()
class Book:
def some_func(self):
author = self.author
# Other stuff
В зависимости от того, что some_func
делает, это может или не может работать для вас.Однако я бы посоветовал вам сохранить отношения M2M между Книгой и Автором, так как они более гибкие и соответствуют принципам работы реального мира.Даже если это работает для вас в текущих делах, в конечном итоге вы столкнетесь с ситуацией, когда вам нужно несколько авторов для одной книги.