当我需要制作我的过滤器时,我有一个问题:
我需要Django将字符串字段作为整数进行比较(几乎整个表都是整数)
这不起作用,因为只返回9的条目,而不是12或13的条目.
queryset = Cards.objects.extra(select={'stars': 'CAST(stars AS INTEGER)'}).filter(stars__gte= 9)
我也试过这个:
Cards.objects.annotate(stars_integer=Cast('stars', output_field=IntegerField())).filter(stars__gte= 9)
结果相同,我不能将字段更改为"",因为有些值是字符串,如"?"和"X"
class Cards(models.Model):
# CARD NAME
name = models.CharField(
max_length=128,
null=False,
unique=True,
)
# AMMOUNT OF STARS
stars = models.CharField(
max_length=2, null=True, unique=False, default="", verbose_name="Stars"
)
谢谢