'NoneType' object has no attribute 'strftime'
12,991
Solution 1
You would have to handle the check for both report
and report.manual_date
for None
Try this:
def when(request):
user = request.user
date = None
try:
report = Report.objects.get(user=user)
except:
report = None
settings = Settings.objects.get(user=user)
settingsForm = SettingsForm(instance=settings)
reportform = ReportForm()
if report and report.manual_date:
if settings.date_format == '0':
date = report.manual_date.strftime('%d/%m/%Y')
else:
date = report.manual_date.strftime('%m/%d/%Y')
reportform = ReportForm(instance=report)
if request.method == 'POST':
reportform = ReportForm(request.POST)
if report:
reportform = ReportForm(request.POST,instance=report)
if reportform.is_valid():
report = reportform.save(commit=False)
report.user = request.user
report.save()
return redirect('/member/media/')
reportform = ReportForm(instance=report,initial={'manual_date':date})
Solution 2
I don't know how to logically handle this
manual_date = report.manual_date
if (manual_date):
format = (settings.date_format == "0") ? '%d/%m/%Y' : '%m/%d/%Y'
date = manual_date.strftime(format)
else:
#No report.manual_date
Author by
Admin
Updated on June 04, 2022Comments
-
Admin almost 2 years
views.py
def when(request): user = request.user try: report = Report.objects.get(user=user.id) except: report = None settings = Settings.objects.get(user=request.user) settingsForm = SettingsForm(instance=settings) if settings.date_format == '0': date = report.manual_date.strftime('%d/%m/%Y') else: date = report.manual_date.strftime('%m/%d/%Y') reportform = ReportForm(instance=report) if request.method == 'POST': reportform = ReportForm(request.POST,instance=report) if reportform.is_valid(): report = reportform.save(commit=False) report.user = request.user report.save() return redirect('/member/media/') reportform = ReportForm(instance=report,initial={'manual_date':date})
The above code is used to convert and show the date format.Initially,i hard coded the value in database and checked about format change.Now,for 1st time,for new record in database,it is giving this error "
'NoneType' object has no attribute 'strftime'
"I don't know how to logically handle this.Need your help.
Thanks
-
7stud almost 11 years"Most likely your report object is None". No. If that were the case, the error message would say "NoneType object has no attribute manual_date".
-
karthikr almost 11 yearsthanks.. but the code would not work if report is None anyways.. I edited it now.