Как сделать два поля выбора, которые будут сохранены как одно значение в базе данных в 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?