Как получить доступ к «другой стороне» отношений ManyToMany в Django / Wagtail? - PullRequest
0 голосов
/ 06 августа 2020
• 1000 Я могу получить доступ к каждому из авторов в шаблоне, используя этот код:
            {% with author=page.author.all %}
                {% if author %}
                    {% for aut in author %}
                    <div>
                        {{ aut }}
                    </div>
                    {% endfor %}
                {% endif %}
            {% endwith %}

Это печатает каждого автора, связанного с книгой.

Как мне сделать обратное и получить все же книги, написанные конкретным автором? Кажется, я ничего не могу найти об этом в документации по трясогузке.

1 Ответ

2 голосов
/ 06 августа 2020

Это описано в документации Django: https://docs.djangoproject.com/en/stable/topics/db/queries/#related -объекты

Когда вы определяете отношение, такое как ParentalManyToManyField, Django устанавливает свойство на целевая модель, позволяющая запрашивать отношение в обратном порядке - по умолчанию это свойство названо в честь другой модели с добавлением _set, поэтому bookpage_set в этом случае:

{% for book in author.bookpage_set.all %}

Вы можете указать другое name, указав related_name при настройке ParentalManyToManyField:

authors = ParentalManyToManyField(Book, blank=True, related_name='books')  # - allows you to write author.books.all
...