for s in bs:
print s.sequence.name, s.number_in_sequence
print s.sequence.name, s.number_in_sequence
On Sun, May 1, 2011 at 1:30 PM, Alex <4d876b82@gmail.com> wrote:
Hello!
Assume we have the following models:
class Book(models.Model):
title = models.CharField()
sequences = models.ManyToManyField(Sequence,
through='BookSequence')
class Sequence(models.Model):
name = models.CharField(unique=True)
class BookSequence(models.Model):
class Meta:
unique_together = ('book', 'sequence')
book = models.ForeignKey(Book)
sequence = models.ForeignKey(Sequence, related_name='detail')
number_in_sequence = models.IntegerField()
...and are trying to select the sequences a concrete book belongs to,
along with the number of this book in the sequence:
def print_book_sequences():
book = Book.objects.get(pk=1)
for seq in book.sequences.select_related():
number_in_sequence = seq.detail.get(book=book,
sequence=seq).seq_number
print seq.name, number_in_sequence
So, the question is:
Is there any way in django to select sequence name and sequence number
in one sql query?
The code in print_book_sequences results in two sql queries per
sequence, one selecting name and one number.
You received this message because you are subscribed to the Google Groups "Django users" group.
To post to this group, send email to django-users@googlegroups.com.
To unsubscribe from this group, send email to django-users+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/django-users?hl=en.
No comments:
Post a Comment