Как сделать два поля выбора, которые будут сохранены как одно значение в базе данных в django?

Я создал модель Task:

class Task(models.Model):
    name = models.CharField(max_length=200, null=True)
    author = models.ForeignKey(User, on_delete=models.DO_NOTHING, blank=True, null=True)
    company = models.ForeignKey(Company, on_delete=models.DO_NOTHING)
    eta = models.CharField(max_length=20, null=True, blank=True)

Я хочу, чтобы eta сохранялось как CharField, которое будет вводиться пользователем через два поля: одно поле для измерения, например: месяцы, дни, минуты и т.д. и одно поле для суммы, например: 1, 4, 10 и т.д...

в конце я хотел бы, чтобы поле eta было. '1 час', '30 минут', '2 недели' и т.д...

Я хочу, чтобы пользователь вводил поля, а затем бэкенд сохранял их в нужном формате.

Может ли кто-нибудь помочь с тем, как это сделать? или если у кого-то есть идея, как сделать это лучше. Я хочу сделать приложение, которое будет определять, когда ETA уже прошло, и предупреждать пользователя об этом.

Для этой функциональности следует использовать поле DateField с:

eta = models.DateField(auto_now=False, auto_now_add=False)

Когда вы отображаете это поле с помощью модели формы, она отобразит виджет ввода даты, чтобы пользователь мог выбрать дату, когда ожидается 'eta'.

Обратный отсчет до "eta" должен быть сделан отдельно от хранения ожидаемой даты, возможно, с помощью некоторого JavaScript. Я привел ссылки на некоторые ресурсы ниже.

Ссылка на поле модели: https://docs.djangoproject.com/en/4.1/ref/models/fields/#datefield

Виджет: https://docs.djangoproject.com/en/4.1/ref/forms/widgets/#django.forms.DateInput

Функциональность обратного отсчета:

https://www.w3schools.com/howto/howto_js_countdown.asp

Как добавить таймер обратного отсчета как поле пользователя в django?

Как реализовать таймер обратного отсчета в django

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