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 <zjh...@gmail.com <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 django-users...@googlegroups.com <javascript:>. >> To post to this group, send email to django...@googlegroups.com >> <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 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/59bc8447-1349-46d2-b430-84dae1cc3e4b%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.