Есть ли способ добавить поле даты в модели в шаблоне "от до" для расчетных периодов - Django

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


class Bill(models.Model):
    
    billing_period_start = models.DateField(null=True, blank=True)
    
    billing_period_end = models.DateField(null=True, blank=True)   

Вопрос :

Есть ли способ добавить два отдельных поля даты в одно поле модели, чтобы я мог получить
из "DateField" в "DateField" шаблон в административной панели и иметь расчетный период в одном поле.

Если вы используете PostgreSQL, вы можете использовать DateRangeField https://docs.djangoproject.com/en/4.1/ref/contrib/postgres/fields/#daterangefield. В противном случае вы можете реализовать пользовательское поле самостоятельно.

Вы можете использовать поле DateRangeField, доступное для postgres.

from django.contrib.postgres.fields import DateRangeField

class Bill(models.Model):
    date_range = DateRangeField()

Вы можете присвоить значение этому полю непосредственно с помощью кортежа:

Создайте диапазон от 2021-01-01 до 2021-04-01
bill.date_range = ('2021-01-01', '2021-04-01')

Вы также можете создать диапазон явно с помощью DateTimeTZRange (это то, что вы получите из базы данных в любом случае):

from psycopg2.extras import DateTimeTZRange
instance.validity_range = DateTimeTZRange(lower='2021-01-01', upper='2021-03-31')

См. здесь подробнее об этой области

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