что у меня есть: целевая модель, связанная с моделью «многие ко многим» с полиморфной моделью c. Для каждого объекта в целевой модели я хочу объединить максимальное значение некоторого общего для столбца модели polymorphi c, но для конкретного подкласса модели c polymorphi c. Что я пробовал: '' '
from django.db.models import Max, Q
from django.contrib.contenttypes.models import ContentType
from polymorphic.models import PolymorphicModel
class manytomanymodel(PolymorphicModel):
commonfloat = model.FloatField()
class A(manytomanymodel):
somefields = ...
class B(manytomanymodel):
someotherfields = ....
class TargetModel(model.Model):
manytomany = models.ManyToManyField(manytomanymodel)
TargetModel.annotate(targetmax=Max("manytomany__commonfloat", filer=Q(manytomany___polymorphic_ctype=ContentType.objects.get_for_model(A)))
' ''
в результате я получаю: '' '
/export/django/venv/lib64/python3.6/site-packages/django/db/backends/utils.py in _execute(self, sql, params, *ignored_wrapper_args)
82 return self.cursor.execute(sql)
83 else:
---> 84 return self.cursor.execute(sql, params)
85
86 def _executemany(self, sql, param_list, *ignored_wrapper_args):
ProgrammingError: syntax error at or near "("
LINE 1: ... MAX("manytomany_manytomanymodel"."commonfloat") FILTER (WHERE "he...
' '' Похоже, запрос будь абсолютно ле git для меня и прекрасно работает без фильтрации