Как использовать id в моделях django

хочу использовать self.id т.е. обращаться к колонке с id, как к базам данных, но компилятор не видит такой атрибут.

class Author(models.Model):
    first_name = models.CharField(max_length=100, help_text="Введите имя автора", verbose_name="Имя автора")
    last_name = models.CharField(max_length=100, help_text="Введите фамилию автора", verbose_name="Фамилия автора")
    date_of_birth = models.DateField(help_text="Введите дату рождения", verbose_name="Дата рождения",
                                     null=True, blank=True)
    about = models.TextField(help_text="Введите сведения об авторе", verbose_name="Сведения об авторе")
    photo = models.ImageField(upload_to='images', help_text="Введите фото автора", verbose_name="Фото автора",
                              null=True, blank=True)

    def __str__(self):
        return self.last_name

Обратите внимание на возврат 2ух последних функций (Book), где используется self.id и self.author.all()

class Book(models.Model):
    title = models.CharField(max_length=200, help_text="Введите название книги", verbose_name="Название книги")
    genre = models.ForeignKey('genre', on_delete=models.CASCADE, help_text="Введите жанр для книги",
                          verbose_name="Жанр книги", null=True)
    language = models.ForeignKey('Language', on_delete=models.CASCADE, help_text="Введите язык книги",
                             verbose_name="Язык книги", null=True)
    publisher = models.ForeignKey('Publisher', on_delete=models.CASCADE, help_text="Выберите издательство",
                              verbose_name="Издательство", null=True)
    year = models.CharField(max_length=4, help_text="Введите год издания", verbose_name="Год издания")
    author = models.ManyToManyField('Author', help_text="Выберите автора (авторов) книги",
                                verbose_name="Автор (авторы) книги")
    summary = models.TextField(max_length=1000, help_text="Введите краткое описание книги",
                           verbose_name="Аннотация книги")
    isbn = models.CharField(max_length=13, help_text="Должно содержать 13 символов", verbose_name="ISBN книги")
    price = models.DecimalField(decimal_places=2, max_digits=7, help_text="Введите цену книги",
                            verbose_name="Цена (руб.)")
    photo = models.ImageField(upload_to='images', help_text="Введите изображение обложки",
                          verbose_name="Изображение обложки")

def __str__(self):
    return self.title

def get_absolute_url(self):
    return reverse('book-detail', args=[str(self.id)])

def display_author(self):
    return ', '.join([author.last_name for author in self.author.all()])
display_author.short_description = 'Авторы'

В self.author.all() ожидается возврат через связь всех строк из модели (колонки author), но компилятор подчеркивает их желтым:

Unresolved attribute reference 'all' for class 'ManyToManyField'

При этом я могу использовать self.save(). Я не понимаю , как это работает, прошу помощи

Почему я не могу использовать атрибут id и как обратиться к author

введите сюда описание изображения

Вернуться на верх