Thank you for your reply,"prome" is my app name.

I had changed to MySQL,it runs well on from the same code. And sqlite is 
also OK.

On Monday, October 15, 2018 at 3:19:11 PM UTC+8, ludovic coues wrote:
>
> I cannot find in the code you shared "prome_product" so I assume there is 
> missing code or a typo.
>
> The ProgrammingError should come with a line number or a stack trace where 
> the line causing issue is roughly in the middle. If it's the serializer 
> line, I suggest you split it, doing the annotate before calling serializer.
>
> Query set are "lazy loading", they don't fetch from the database untill 
> they have to. While it's great most of the time, that cause issue while 
> debugging. Try to call list(qs.annotate(...)[offset:offset+limit]) to force 
> the query set to execute.
>
> This won't give you an answer but that might help you to find the issue.
>
> Good luck!
>
> On Mon, Oct 15, 2018, 03:38 muin <[email protected] <javascript:>> wrote:
>
>> Django 2.1.2, Postgres 10
>>
>> Model:
>> class Product(models.Model):
>> product_id = models.AutoField("产品ID", primary_key=True)
>> ...
>>
>> class SpecItem(models.Model):
>> spec_id = models.AutoField(primary_key=True)
>> product = models.ForeignKey(Product, on_delete=models.CASCADE, 
>> related_name="product_specs", null=True)
>> price = models.FloatField("价格", default=0)
>> ...
>>
>> When exwcute
>> qs = Product.objects.filter(valid=1)
>> serializer = ProductSerializer(
>> qs.annotate(cnt=Count("product_specs"), 
>> min_price=Min("product_specs__price")).filter(cnt__gt=0)
>> .order_by("min_price")[offset:offset + limit],
>> context={"request": request},
>> many=True)
>>
>> It says django.db.utils.ProgrammingError: column 
>> "prome_product.product_name" must appear in the GROUP BY clause or be used 
>> in an aggregate function
>>
>>
>> Can anyone help me?
>>
>> -- 
>> 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 [email protected] <javascript:>.
>> To post to this group, send email to [email protected] 
>> <javascript:>.
>> 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/64c1b2f0-6125-45e0-a08b-7d5d3426f16d%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/django-users/64c1b2f0-6125-45e0-a08b-7d5d3426f16d%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 [email protected].
To post to this group, send email to [email protected].
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/59bc8447-1349-46d2-b430-84dae1cc3e4b%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to