pythonその6 django入門

ルーティングがうまく行かないなーと思って、和訳を眺めてたら衝撃の事実が…
自分の間違い:mysite/polls/urls.py を新規作成
正しくは:mysite/mysite/urls.py 既存ファイルにルール追加。

と思いきや1.4と1.8だとurls.pyの置き場が違うみたい。重要そうなファイルなので、公式ドキュメントの間違いなんじゃないか?と思い試行錯誤した結果、ようやくでけた。polls/urls.pyは新規作成で、mysite/urls.pyは修正。両方必要みたい。公式もよーく読むとそう書いてあった。ルーティング定義をしてるのに404 not foundで、定義したルールとエラーしたルールが違う時点で気づける人は気づけるんだろう。

railsと比較すると自分で書いてる分、コントロールできている気がすると思うし、どうせできてるといってもscaffoldだと実際には使えないしなーと思う反面、いちいち書くの面倒くさいなーとも思ったり。また、がちゃがちゃやってる間にいろんなエラーに出会った。

ImportError : from x import yの誤り

SyntaxError : 括弧の数が合わない

IndentationError : インデントが合わない

NoReverseMatch : “XXXX is not a registered namespace”と詳細で出てる。どうもチュートリアルにあるnamespaceの指定が余計っぽい。

AttributeError : module’ object has no attribute ‘XXXX’ タイプミスを指摘された。

この辺のデバッグは慣れが必要だな…

チュートリアルの4ではそれまでとガラっとviewの書き方が変わる。今回はローカルのgitにこまめにコミットしながらやってたので、ビクビクせずに学習できたが、classベースのviewに変えたら、最新5件をとってきてindexに表示するところが動かなくなったので、後で調べる。たぶん。

2015/08/29追記

classベースのviewでindex表示ができない原因はtypoだった。contextと書くはずが、conextになっていた。

 

Comments on this post

No comments.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Trackbacks and Pingbacks on this post

No trackbacks.

TrackBack URL