Il existe deux modèles:

class Author(models.Model):
    first_name = models.CharField(max_length=150, help_text="Фамилия")
    second_name = models.CharField(blank=True, max_length=150, help_text="Имя")
    third_name = models.CharField(blank=True, max_length=150, help_text="Отчество")

    def __str__(self):
        return '{0} {1} {2}'.format(self.first_name, self.second_name, self.third_name)

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

class Book(models.Model):
    title = models.CharField(max_length=200, help_text="Название книги")
    author = models.ManyToManyField('Author', help_text="Автор")
    year = models.CharField(max_length=4, help_text="Год издания")

    def __str__(self):
        return self.title

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

Sur la page avec des informations sur le livre je veux afficher son auteur, mais ce que je fais ne fonctionne pas :

  <p><strong>Автор:</strong> {{ book.author }}</p>

Également un problème avec l'identifiant de l'auteur. Cette ligne est interrompue :

{{ author.get_absolute_url }}
0
Lera 14 févr. 2020 à 20:44

1 réponse

Meilleure réponse

Vous ne pouvez pas accéder à l'auteur par cette méthode, car votre modèle de livre est lié à la relation plusieurs à maman. Si vous avez vraiment besoin d'une relation plusieurs à plusieurs, vous devez modifier votre balise de modèle. Vous pouvez voir comment utiliser la balise de modèle pour les relations plusieurs à plusieurs ici

0
kamilyrb 14 févr. 2020 à 17:53