Hi M Hashmi,

As I see your model scheme built with meaning that 1 record of HitCount
relates to many records of Product.
And in your queries you try to select all products that relate to 5 topmost
HitCounts.

Am I correct?

Will be waiting for your response.


On Thu, Aug 4, 2016 at 6:41 PM, M Hashmi <mhashmi1...@gmail.com> wrote:

> I know that count only can be applied for an IntegerField or FloatField
> but I've created a ForeignKey to another model which contains hitcounts.
> Now I need to filter results by max count from related model and I couldn't
> dot it.
>
>
> models.py:
>
>
> class Product(models.Model):
>     title = models.CharField(max_length=120)
>     description = models.TextField(blank=True, null=True)
>     price = models.DecimalField(decimal_places=2, max_digits=20)
>     active = models.BooleanField(default=True)
>     categories = models.ManyToManyField('Category', blank=True)
>     default = models.ForeignKey('Category', related_name='default_category', 
> null=True, blank=True)
>     hits = models.ForeignKey(HitCount)
>
>     objects = ProductManager()
>
>     class Meta:
>         ordering = ["-title", '-hits']
>
>
> The idea is to access Hitcount field hits to count max value and sort
>  list by max count. Below is Hitcount model installed as third party
> reusable app djagno-hitcount.
>
>  HitCount(models.Model):
>     hits = models.PositiveIntegerField(default=0)
>     modified = models.DateTimeField(auto_now=True)
>     content_type = models.ForeignKey(ContentType, 
> related_name="content_type_set_for_%(class)s", on_delete=models.CASCADE)
>     object_pk = models.PositiveIntegerField('object ID')
>     content_object = GenericForeignKey('content_type', 'object_pk')
>
>     objects = HitCountManager()
>
>     class Meta:
>         ordering = ('-hits',)
>         get_latest_by = "modified"
>         verbose_name = _("hit count")
>         verbose_name_plural = _("hit counts")
>         unique_together = ("content_type", "object_pk")
>         db_table = "hitcount_hit_count"
>
>
> I need to call products in multiple apps with different list and in
> my mainpage views I am trying to use filter option like below:
>
> from django.db.models import Max, Sum, Count
> product1 = Product.objects.all().annotate(hits=Count('-hits__hits'))[:6]
>
> or
>
> product1 = Product.objects.all().order_by('-hits__hits')[:6]
>
> and with few different filter options. I couldn't make it work so advise
> would be appreciated.
>
> --
> 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+unsubscr...@googlegroups.com.
> To post to this group, send email to django-users@googlegroups.com.
> Visit this group at https://groups.google.com/group/django-users.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/django-users/39e610bf-0558-4a8d-8491-f9324d8986f1%40googlegroups.com
> <https://groups.google.com/d/msgid/django-users/39e610bf-0558-4a8d-8491-f9324d8986f1%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
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+unsubscr...@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/CAK52boXyqDJMFndLHALhrXnpV5%3Dj-mH8xiX45XJkw0F7HR9Srg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to