'> =' не поддерживается между экземплярами 'NoneType' и 'float' - PullRequest
0 голосов
/ 15 октября 2019

Я хочу запустить свой код, но продолжаю получать сообщения об ошибках. Речь идет о поле формы, в котором они вводят свое значение. Если значение находится в определенном диапазоне, они получат 1 евро. Код:

class Guess(Page):
    form_model = 'player'
    form_fields = ['guess']

    def is_displayed(self):
        return self.round_number == 2

    def vars_for_template(self):
        if self.player.guess >= 11.25 and self.player.guess <= 13.75:
            self.player.cumulative_guthaben = self.player.cumulative_guthaben + 1
        else:
            self.player.cumulative_guthaben = self.player.cumulative_guthaben

            return {
                'current_credit': self.player.cumulative_guthaben,
                'anzahlspieler': Constants.number_of_players,
                'round_number': self.round_number,}

Я знаю, что это ошибка типа, но мне не удалось ее исправить

Here is a shorter Version of my Class: 
class Player(BasePlayer): 
guthaben = models.CurrencyField(initial=c(0)) 
cumulative_guthaben = models.CurrencyField() 
donation = models.FloatField(min=c(0)) 
earnedmoney = models.CurrencyField() 
frequency = models.StringField() 
rival = models.StringField() 
guess = models.FloatField(label="Your Guess:")

1 Ответ

1 голос
/ 15 октября 2019

Вы получаете ошибки, потому что в какой-то момент self.player.guess является NoneType, и он должен быть плавающим, чтобы сравнить его с плавающим. Вы можете использовать isinstance(i, type). Вам не нужно больше, так как вы не меняете значение self.player.cumulative_guthaben. Но вы должны проверить оставшуюся часть кода, почему self.player.guess это NoneType. Примерно так:

class Guess(Page):
    form_model = 'player'
    form_fields = ['guess']
    def is_displayed(self):
        return self.round_number == 2

    def vars_for_template(self):
        if isinstance(self.player.guess, float):
            if (self.player.guess >= 11.25 and self.player.guess <= 13.75):
                self.player.cumulative_guthaben = self.player.cumulative_guthaben + 1
        return {
            'current_credit': self.player.cumulative_guthaben,
            'anzahlspieler': Constants.number_of_players,
            'round_number': self.round_number,}
...