3
Compte tenu d'une structure de modèle comme celui-ci:Cette requête Django peut-elle être améliorée?
class Book(models.Model):
user = models.ForeignKey(User)
class Readingdate(models.Model):
book = models.ForeignKey(Book)
date = models.DateField()
Un livre peut avoir plusieurs Readingdate
s.
Comment puis-je lister les livres ayant au moins un Readingdate
dans une année spécifique?
Je peux le faire:
from_date = datetime.date(2010,1,1)
to_date = datetime.date(2010,12,31)
book_ids = Readingdate.objects\
.filter(date__range=(from_date,to_date))\
.values_list('book_id', flat=True)
books_read_2010 = Book.objects.filter(id__in=book_ids)
Est-il possible de le faire avec un queryset, ou est-ce la meilleure façon?