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
.