Wednesday, February 25, 2015

Can the new `Prefetch` solve my problem?

Hi guys,

I'm trying to solve a problem using the new `Prefetch` but I can't figure out how to use it. 

I have these models:

    class Desk(django.db.models.Model):
        pass
    
    class Chair(django.db.models.Model):
        desk = django.db.models.Foreignkey('Desk', related_name='chair',)
        nearby_desks = django.db.models.ManyToManyField(
            'Desk',
            blank=True,
        )

I want to get a queryset for `Desk`, but it should also include a prefetched attribute `favorite_or_nearby_chairs`, whose value should be equal to: 

    Chair.objects.filter(
        (django.db.models.Q(nearby_desks=desk) | django.db.models.Q(desk=desk)),
        some_other_lookup=whatever,
    )

Is this possible with `Prefetch`? I couldn't figure out how to use the arguments.


Thanks,
Ram.

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/46d9fdb7-c008-4496-acda-ac7cb30b4a89%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

No comments:

Post a Comment