Ваш вопрос не является подробным, но попробуйте что-то вроде этого:
import datetime
userinput = input("Enter Date DD-MM-YYYY")
birthday = datetime.datetime.strptime(userinput, '%d-%m-%Y').date()
print(birthday)
Вывод:
2020-05-02
Вам необходимо указать формат ввода для пользователя, затем вы используете strptime()
функция, чтобы преобразовать его в формат даты. См. input format
выше и OUTPUT
выше
РЕДАКТИРОВАТЬ
Вот как это сделать в Django:
Моделях .py
from django.db import models
import datetime
# Create your models here.
class Calculator(models.Model):
deadline = models.DateField(null=True)
def __str__(self):
return self.deadline
forms.py
from .models import Calculator
class CalculatorForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
''' remove any labels here if desired
'''
super(CalculatorForm, self).__init__(*args, **kwargs)
# you can also remove labels of built-in model properties
self.fields['deadline'].label = ''
class Meta:
model = Calculator
fields = ['deadline']
widgets = {
'deadline': forms.DateInput(attrs={'class': 'datepicker', 'placeholder': 'mm-dd-YYYY'})
}
views.py
from django.shortcuts import render,redirect
from django.shortcuts import render, get_object_or_404
from django.http import HttpResponseRedirect, HttpResponse
from django.urls import reverse
from .forms import CalculatorForm
from .models import Calculator
import time
import datetime
# Create your views here.
def home(request):
today = datetime.date.today()
form = CalculatorForm(request.POST)
# If this is a POST request then process the Form data
if form.is_valid():
instance = form.save()
currentdate = datetime.date.today()
userinput = str(instance.deadline)
birthday = datetime.datetime.strptime(userinput, '%d-%m-%Y').date()
days = birthday - currentdate
daysLeft = 'Days to your event is ' , days
#return render(request, 'calculator/check.html', {'days':days})
return HttpResponse(daysLeft)
context = {
'form': form,
}
Я использовал простой калькулятор дат, чтобы показать, как это сделать в Django. Я надеюсь, что это решит вашу проблему