前回の投稿を忘れていたので、前回の分も併せて学びを書いていきます。
【今日の学び】
・request.GET、request.POST
前回の投稿の中で紹介したGET、POSTメソッドで送信したrequestのパラメータを取得する方法としてrequest.GET、request.POSTがあります。
・DetailViewではGET、POSTメソッドは定義しないといけない
開発中に「Method Not Allowed (POST):」という405エラーが出ていました。
今まではCreateViewで新規作成をしていましたが、DetailViewでFormを使って新規作成をしようとすると405エラーが出ていました。
調べてみると、そもそもCreateView(他にもUpdateView、FormView、DeletView)が継承しているdjango.views.generic.editにはGET、POSTメソッドがありますが、DetailViewが継承しているdjango.views.generic.detailにはGET、POSTメソッドがないので定義しないといけません。
・初期化メソッド「__init__」
初期化メソッドとは、インスタンス生成時に初期化処理することができます。
例えば、
class House
:
def
__init__(
self
,color
=
"black"
, height
=
"3m"
):
self
.color
=
color
self
.height
= height
#引数なしhouse1 = House
()
(house1.color)
(house1.height)
#引数有りhouse2
=
House(
"blue"
,
"10m"
)
(house2.color)
(house2.height)
実行すると、
#引数なし
black
3m
#引数有り
blue
10m