Выберите правильный выбор. 2.6 не является одним из доступных вариантов - PullRequest
1 голос
/ 06 марта 2020

У меня есть модель с полем, в котором есть выбор, как показано ниже. Я как-то балуюсь с DecimalField. И я не могу передать значения, такие как 1,7 или 2,6. Но он принимает 1.0 и 2.0. Пожалуйста, дайте мне знать, что я делаю не так.

class Trip(models.Model):

    ACE = 1.00
    Dosth = 1.70
    TEN = 2.00
    FORTEEN = 2.30
    SEVENTEEN = 2.60
    NINETEEN = 2.90
    TWENTY = 3.10
    TWENTYTWO = 3.10

    VEH_CHOICES = (
        (ACE, 'ACE'),
        (Dosth, 'Dosth'),
        (TEN, '10.5FT'),
        (FORTEEN, '14FT'),
        (SEVENTEEN, '17FT'),
        (NINETEEN, '19FT'),
        (TWENTY, '20FT'),
        (TWENTYTWO, '22FT'),
    )
    ftype = models.DecimalField(null = True, blank = True, verbose_name = "Vehicle Type", decimal_places = 2, max_digits = 5, choices = VEH_CHOICES)

1 Ответ

1 голос
/ 06 марта 2020

Вам необходимо изменить поле DecimalField на FloatField я даю новую модель с изменением

class Trip(models.Model):

    ACE = 1.00
    Dosth = 1.7
    TEN = 2.00
    FORTEEN = 2.30
    SEVENTEEN = 2.60
    NINETEEN = 2.90
    TWENTY = 3.10
    TWENTYTWO = 3.10

    VEH_CHOICES = (
        (ACE, 'ACE'),
        (Dosth, 'Dosth'),
        (TEN, '10.5FT'),
        (FORTEEN, '14FT'),
        (SEVENTEEN, '17FT'),
        (NINETEEN, '19FT'),
        (TWENTY, '20FT'),
        (TWENTYTWO, '22FT'),
    )
    ftype = models.FloatField(null = True, blank = True, verbose_name = "Vehicle Type", choices = VEH_CHOICES)

    def __str__(self):
        return str(self.ftype)

см. Различия DecimalField и FloatField

Обновить этот код чтобы ваш код видел, как он работает. если это работает отлично или нет, дайте мне знать

...