Преобразование строки в int перед запросом django ORM

У меня есть модель

class Entry(models.Model):
    maca = models.CharField(max_length=100, blank=True, null=True)

Это поле будет принимать только числа (по коммерческим причинам нельзя установить поле char в целочисленное поле)

Теперь мне нужно купить все Entries, в которых мака больше 90

Я пытаюсь сделать следующее:

Entry.objects.filter(maca__gte=90)

Но gte не работает, потому что мака - струна

Как я могу преобразовать мака в инт перед фильтрацией? Или что-то в этом роде?

Спасибо

Попробуйте это:

from django.db.models.functions import Cast
from django.db.models import IntegerField
Entry.objects.annotate(maca_integer=Cast('maca', output_field=IntegerField())).filter(maca_integer__gte=90)
Вернуться на верх