Error logging when creating Django reservation site

attribute-error django

Following on from the previous allauth, I have now created a calendar and booking function. I’m getting used to the errors and want to learn to look for error points.

First stumbling point

The QuerySet value for an exact lookup must be limited to one result using slicing.

Zero [0] was missing from the code, so I added it and it displayed well.

The “0” mark or “hyphen (-)” that should have been set in the calendar is not displayed.

The first thing I checked was the font-awesome link setting and the icon description error. There were no mistakes here.

font-awesome

In the for statement on line 55, “items” was “iems”. This was a common spelling error for beginners. After correction, it was displayed properly.

Fixed NoReverseMatch at.

Reverse for 'teacher' not found. 'teacher' is not a valid view function or pattern name.

<Cause> I forgot the 'name' I had named myself and called a different 'name'.
In app/views.py it called ‘teacher’, but in app/urls.py it named ‘staff’.
In the path of app/urls.py, I completely forgot to name the path of “teacher” as “staff”. Complicated naming is not an option.

Before correction:return redirect(‘teacher’)

After modification: return redirect(‘staff’) successfully displayed the page.

PS: I want to transition to the reservation completion page, so I ended up calling “‘thanks’ (reservation completion screen)”.

AttributeError: ‘Booking’ object has no attribute…

A common spelling mistake for beginners. This time, I found a mistake in Booking in models.py!

I found a site that has a good summary of countermeasures for each error message: Click Here

If you read the error message carefully, it says that “first_name” is missing from “Booking,” so you can find it by going straight to models.py where you set up the “Booking” class, but as a beginner, I get impatient when I see the yellow screen with that error.

Side note: What is “make_aware”?

NAIVE and AWARE (with or without time zone)

The same datetime object can have either a time zone or no time zone.
In Python, a datetime with a time zone is called an aware date/time and a datetime without a time zone is called a naive date/time.

Reference:Python 日付・時刻ライブラリー 逆引きリファレンス – Qiita

It seems that if you don’t set the model (database) to use either naive or aware, the time system will error out.

The problem is not in Django settings, but in the date passed to the model. Here’s how a timezone-aware object looks like:

>>> from django.utils import timezone

>>> import pytz

>>> timezone.now()

datetime.datetime(2013, 11, 20, 20, 8, 7, 127325, tzinfo=pytz.UTC)

And here’s a naive object:

>>> from datetime import datetime

>>> datetime.now()

datetime.datetime(2013, 11, 20, 20, 9, 26, 423063)

Reference: stackflowのリンクはコチラ

Side trip 2: What is timedelta?

I didn’t study python well and started Django as a beginner, so there are many points to be tripped up. the word “timedelta” that came up in views.py bothered me, so I’m going to look it up.

Reference: コチラ

The timedelta is a class in datetime module that represents duration. The delta means average of difference and so the duration expresses the difference between two datedatetime or time instances.

class datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)

The default value of all arguments is zero and all are optional.

iQueryAZ

The “timedelta” is also frequently used in this reservation system. It seems to be used when we want to specify the starting position or initial value of a date or time, so let’s study it more carefully.

Recommend

Creating graphs with Django + Chart.js

タイトルとURLをコピーしました