Когда я пытаюсь запросить модель 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 не являются целыми числами.

Вернуться на верх