Я использую функцию djagno postgres из https://docs.djangoproject.com/en/3.0/ref/contrib/postgres/fields/
Мне нужно использовать функцию агрегирования в поле hstore, но получаю ошибку ...
Здесь мое поле models.py
def get_default_dict():
return {}
class Post(models.Model):
.................
extra_details = HStoreField(default=get_default_dict)
class Meta:
db_table = 'post'
extra_details сохранить как {"ab c": 1}, {"ab c": 100}, {"ab c": 433}
Теперь мне нужно получить объект post, где значение extra_details ['ab c'] самое высокое (например, 433)
Я пытаюсь сделать как
from django.db.models import Avg, Max
Post.objects.filter(id__in=[1,2,3,4,5,..]).annotate(ab=Max('extra_details__abc'))
получая ошибку
*** django.db.utils.ProgrammingError: function max(hstore) does not exist
LINE 1: ......."statistics", MAX("post..
HINT: No function matches the given name and argument types. You might need to add
explicit type casts.
Как я могу использовать агрегатную функцию в этой ситуации?