IntegerField возвращает строку

Я передаю в IntegerField число и мне нужно, чтобы сортировка велась не по алфавиту, а по количеству, но проблема в том, что WinratePlayersStats возвращает строку, которую django соответственным образом фильтрует.

Есть вот такая модель:

# models.py
class WinratePlayersStats(models.Model):
    name = models.CharField(max_length=20, verbose_name='Игрок')
    games = models.IntegerField(verbose_name='Финалок игрока')
    winrate = models.IntegerField(verbose_name='Винрейт игрока')

    def __str__(self):
        return self.name

    class Meta:
        verbose_name = 'винрейт игрока'
        verbose_name_plural = 'Винрейт игроков'
        ordering = ['-winrate', '-games']

Код для записи в эту модель:

# views.py
def save_stats(self):
    name_players, players_game_list, winrate_players = self.__return_data_players()
    WinratePlayersStats.objects.all().delete()
    for i in range(len(name_players)):
        WinratePlayersStats.objects.create(name=name_players[i], # str
                                           games=players_game_list[i], # int
                                           winrate=winrate_players[i]) # int

А тут я делаю запрос этих данных:

# views.py
def get_context_data(self, *, object_list=None, **kwargs):
    context = super().get_context_data(**kwargs)
    context['WinratePlayersStats'] = WinratePlayersStats.objects.all()
    return context

Все данные возвращаются в str

Я так и не нашел ответа на вопрос почему это происходит, но мне помогла замена IntegerField на BigIntegerField.

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