В django я хочу изменить дату из представления
Я хочу обновлять дату из бэкенд представлений в django как я могу это сделать вот мои представления где я хочу это сделать объясняю, что именно я хочу достичь я строю crm, где клиенты должны платить ежемесячно или ежеквартально в зависимости от их плана я дал кнопку в dashbord, которая запускает эту функцию и перенаправляет на домашнюю страницу в этой функции, если пользователь дата месяц пришел тогда эта функция должна генерировать счета, которые на главной странице и показать неоплаченную сумму, что неправильно происходит с этой идеей каждый раз при нажатии кнопки он будет генерировать дубликаты счетов добавление в доход, чтобы остановить это я добавил переменную имеет право, который я думал, что пользователь будет изменять его вручную, но потом я чувствую, что это более хорошо, чтобы обновить дату
def refresh_dashboard(request):
date = datetime.datetime.now().strftime ("%Y%m%d")
m = datetime.date.today()
print(f"the date is {m}")
customer = Customer.objects.all()
for i in customer:
# print(i.eligible)
period = i.next_payment.strftime("%Y%m%d")
if period <= date and i.eligible == True:
x = Bill.objects.create(name = i.name,status ="unpaid",price = i.recuring_amount,generate_date = date)
x.save()
obj = i
# obj.next_payment.strftime("%Y%(m+1)%d")
obj.eligible = False
obj.save()
# print(f"the date is {date} and the obtain from the customer is {period}")
# print(f"this customer {i.name} bill need to be generated")
# print(f"the date is {datetime.datetime.now()}")
return redirect('/')
Вы можете увеличить datetime
на основе заданных дней, используя timedelta
from datetime import datetime
from datetime import timedelta #new
today = datetime.now()
print(f"Today's the date & Time is {today}")
month_later = today+ timedelta(days=MONTHLY_CYCLE)
three_months_later = today+ timedelta(days=QUA_CYCLE)
six_months_later = today+ timedelta(days=SIX_MONTH_CYCLE)
print(f"three_months_later's the date & Time is {month_later}")
print(f"three_months_later's the date & Time is {three_months_later}")
print(f"six_months_later's the date & Time is {six_months_later}")
customer = Customer.objects.get(pk=id) # Targeted Customer
selected_cycle = int(customer.billing_cycle) #return the value of billing_cycle selected from Customer
tentative_date = today+ timedelta(days=selected_cycle)
print(f"tentative_date Billing date & Time is {month_later}") # Required DAte.
Вот как вы можете обновить datetime
. остальное вы можете реализовать по мере необходимости.