On 12 Sty, 20:52, a b <[email protected]> wrote:
> Hi,
>
> I have three models:
> Product
> SimpleProduct that extends Product
> GroupProduct that extends Product and have ManyToMany relation with
> SimpleProduct
>
> The reason to use the base Product model is so I can use paging.
> Is it possible to make a query that gives a list of GroupProducts and
> SimpleProducts that are not included in a GroupProduct.
> I don't want to show the same product twice, once standalone and once as
> part of a GroupProduct.
>
> I can add a field to SimpleProduct that indicates weather it's standalone or
> not and maybe update it using signals
> but it doesn't feel like the right way.
>
Quick, untried, ideas:
1. You could try using aggregation:
from django.db.models import Count
SimpleProduct.objects.annotate(belongs_to_groupproducts=Count
('groupproduct')).filter(belongs_to_groupproducts=0)
2. If this is "normal" inheritance (i.e. not an abstract one), then
SimpleProduct and GroupProduct have
implicit OneToOneField connecting them to Product. It means that you
probably could just filter Product-s and then downcast it.
--
Tomasz Zielinski
http://pyconsultant.eu
--
You received this message because you are subscribed to the Google Groups
"Django users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/django-users?hl=en.