Когда я пытаюсь запросить модель django по положительному небольшому целочисленному полю, я получаю ошибку
Когда я запускаю следующий код, я получаю ошибку "TypeError: Field 'app' expected a number but got <AppChoices.SUK: 1>"
class Category(models.Model):
class AppChoices(models.Choices):
ASK_EMBLA = 0
SUK = 1
---
class SellerReview(models.Model):
------
app = models.PositiveSmallIntegerField(
choices=Category.AppChoices.choices,
default=Category.AppChoices.ASK_EMBLA)
rating = models.PositiveSmallIntegerField()
-----
class RentPostDetailSearializer(serializers.ModelSerializer):
---
def get_posted_by_brief(self, obj: RentPost):
-----
rating = 0
ratings = list(poster_profile.seller_reviews.filter(
app=Category.AppChoices.SUK).values_list("rating", flat=True)) #---> issue here
if ratings:
rating = sum(ratings)/len(ratings)
---
Не знаю, почему это происходит, хотя варианты App являются целыми числами и должны быть числами
Если значения являются целыми числами, следует использовать models.IntegerChoices вместо models.Choices.
Если специально не использовать базовый класс IntegerChoices, члены Enum не являются целыми числами.