Django десятичный разделитель - PullRequest
0 голосов
/ 27 января 2020

К сожалению, я не могу заставить параметр десятичного разделителя вступить в силу:

Это соответствующая часть настроек проекта. Py:

# Internationalization
# https://docs.djangoproject.com/en/2.2/topics/i18n/

LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'Europe/Berlin'  # Correction for the Timestamps
USE_I18N = True
USE_L10N = False
DECIMAL_SEPARATOR = '.'
USE_TZ = False

L10N явно установлен на False, поэтому Django должен игнорировать любые настройки браузера и всегда использовать стандартный десятичный разделитель, если я правильно понял документы?

К сожалению, это не тот случай, мои десятичные поля все еще требуют запятую в качестве разделителя для пользовательских вводов, любая идея?

(я также пытался установить в False локализацию в форма в init , но безрезультатно)

Ниже приведены мои определения формы и модели (рассматриваемое поле будет "Rate")

Model.py :

class Rates(models.Model):
    BillingPartner = models.CharField(max_length=255, blank=False, null=False, verbose_name='Channel Partner')
    # BillingPartner = models.ManyToManyField(to=DistinctCPView, db_constraint=False, verbose_name='Channel Partner')
    SubBillingPartner = models.CharField(max_length=255, blank=False, null=False, verbose_name='Service Partner')
    Product = models.CharField(max_length=255, blank=False, null=False)
    EventType = models.CharField(max_length=255, blank=False, null=False)
    Rate = models.DecimalField(decimal_places=8, max_digits=30)
    RateUnit = models.CharField(max_length=50, blank=False, null=False, choices=rate_unit_choice)
    BillingModel = models.CharField(max_length=255, blank=False, null=False)
    Currency = models.CharField(max_length=30, blank=False, null=False, choices=currency_choice, default='EUR')
    StartDate = models.DateField(blank=False, null=False)
    EndDate = models.DateField(blank=True, null=True)
    UserCreate = models.CharField(max_length=255, blank=False, null=False)
    UserCreateDate = models.DateField(blank=False, null=False)
    UserModify = models.CharField(max_length=255, blank=False, null=False)
    UserModifyDate = models.DateField(blank=False, null=False)
    # Zone = models.CharField(max_length=255, blank=True, null=True)
    InvoiceDirection = models.CharField(max_length=20, blank=False, null=False, choices=invoice_direction_choice)

    def __str__(self):
        representation = "BillingPartner: " + self.BillingPartner + " SubBillingPartner: " + \
                         self.SubBillingPartner + " EventType: " + \
                         self.EventType + " Event Type: " + self.EventType + " Start Date: " \
                         + str(self.StartDate) + " End Date: " + str(self.EndDate)
        return representation

    def get_absolute_url(self):
        return reverse('rate_edit', kwargs={'pk': self.pk})

Forms.py: (пропущены чистые функции + добавлены поля формы)

class RatesModelForm(forms.ModelForm):
  def __init__(self, *args, **kwargs):
        super(RatesModelForm, self).__init__(*args, **kwargs)
        self.helper = FormHelper(self)
        self.fields['StartDate'].widget.attrs['class'] = 'datepicker'
        self.fields['EndDate'].widget.attrs['class'] = 'datepicker'
        self.helper.add_input(Submit('submit', 'Submit', css_class='btn-primary'))
        self.helper.form_method = 'POST'
        # self.fields['Rate'].localize = False
    class Meta:
        model = Rates
        fields = ['BillingPartnerDD', 'SubBillingPartnerDD', 'ProductDD', 'EventTypeDD', 'Rate', 'RateUnit',
                  'Currency', 'BillingModel', 'InvoiceDirection', 'StartDate', 'EndDate']
        widgets = {
            'StartDate': forms.DateTimeInput(attrs={'class': 'datetime-input'}),
            'EndDate': forms.DateTimeInput(attrs={'class': 'datetime-input'}),
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...