Преобразование строки в 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)