Вывести первую запись из обратного внешнего ключа - PullRequest
0 голосов
/ 15 декабря 2018

У меня есть следующие модели

class Book(models.Model):
    title = 
    description = 

class Chapter(models.Model):
    book = models.ForeignKey(Book,on_delete=models.CASCADE)

Как составить список всех первых глав по дате добавления из всех книг?как

Я хочу иметь набор запросов или список глав для отображения в шаблонах.

Ответы [ 2 ]

0 голосов
/ 15 декабря 2018

Попробуйте использовать get_context_data в вашем представлении:

def get_context_data(self, **kwargs):
    context = super(ViewName, self).get_context_data(**kwargs)
    context['chapters'] = Chapter.objects.filter(chapter_number=1).order_by('date_created') 
    # order_by orders the queryset based on the field you specify. You could also use ('-date_created) to reverse the order.
    return context

, а затем в вашем шаблоне:

{% for chapter in chapters %}
 <p>{{ chapter.name }}</p>
{% endfor %}

Трудно сказать, так как я не знаю имени вашегоDateTimeField или другие атрибуты, которые вы указали для главы.

0 голосов
/ 15 декабря 2018

Вам необходимо установить порядок по умолчанию для вашего Chapters
Тогда .first() будет упорядочено по дате

books = Book.objects.prefetch_related('chapter_set')

for book in books:
    print(book.chapter_set.first())
...