Python Django Формат Локализация

Я создал пользовательские файлы формата в моем проекте django. см: https://docs.djangoproject.com/en/4.0/topics/i18n/formatting/#creating-custom-format-files

Я создал свои файлы формата для моего проекта, как указано в ссылке. И у меня есть форматный файл для всех языков, которые будут использоваться в моем проекте. В зависимости от языка пользователя, соответствующий файл формата автоматически вызывается django.

Могу ли я вызвать здесь определения на основе языка пользователя? Если я смогу вызвать мои определения, мои методы автоматического преобразования будут готовы.

Ваше мнение очень ценно для меня, спасибо.

formats/tr/formats.py:

DATE_FORMAT = 'd F Y'
TIME_FORMAT = 'H:i:s'
STR_DATE_FORMAT = "%d.%m.%Y"
STR_DATE_SQL_FORMAT = "%Y-%m-%d"
STR_DATETIME_FORMAT = "%d.%m.%Y %H:%M:%S"
STR_TIME_FORMAT = "%H:%M:%S"

DATE_INPUT_FORMATS = (
    '%d.%m.%Y',  # '25.10.2022', '25.10.06'
    '%d/%m/%Y',  # '25/10/2022'
    # '%d %B %Y', '%d %b. %Y',  # '25 Ekim 2022', '25 Eki. 2022'
)

DATETIME_INPUT_FORMATS = (
    '%d.%m.%Y %H:%M:%S',  # '25.10.2022 14:30:59'
    '%d.%m.%Y %H:%M:%S.%f',  # '25.10.2022 14:30:59.000200'
    '%d.%m.%Y %H:%M',  # '25.10.2022 14:30'
    '%d.%m.%Y',  # '25.10.2022'
)

converts/datetime.py:

class DateTime:
    from formats.tr import formats as ff

    def __init__(self):
        from formats.en import formats as ff
        if a == "tr":
            from formats.tr import formats as ff
        else:
            from formats.en import formats as ff

    @classmethod
    def to_string(cls, tarih, date_format=ff.STR_DATE_FORMAT, time_format=ff.STR_TIME_FORMAT):
        """

        :param tarih:
        :return:
        """
        if isinstance(tarih, datetime.datetime):
            return tarih.strftime("%s %s" % (date_format, time_format))
        elif isinstance(tarih, datetime.date):
            return tarih.strftime(date_format)
        elif isinstance(tarih, datetime.time):
            return tarih.strftime(time_format)

    @classmethod
    def to_datetime(cls, tarih, dtformat=ff.STR_DATETIME_FORMAT):
        """
        :param tarih:
        :return:
        """
        try:
            from dateutil.parser import parse
            # print "%s == %s" % (tarih, parse(tarih))
            # return parse(tarih)
            return datetime.datetime.strptime(tarih, dtformat)
        except ValueError:
            zaman = "%s %s" % (tarih, "00:00:00")
            return datetime.datetime.strptime(zaman, dtformat)

Для меня было бы нелепо вызывать подобное в методе datetime.py init. Должен быть более логичный способ сделать это. Но как?

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