小さなことでも知っていないことは大きい
2021年8月9日7:00 公開
さて。
改装しておよそ1か月経過しました。といっても、見かけは変えてないつもりなのでわからないでしょーが。
今回の改装ポイントは、前は完全関数型使用でした、が、今回は可能な限りクラス使用しています。うん、Viewですねー。なるべくgeneric継承です。
やはり推奨されているやり方を使うようにしないとーと思った訳です。
正直、面倒だなーと思ったところもありましたが、テンプレート名を指定したければview内で指定すれば良いし、モデルというか元データの指定も出来るし、テンプレート汎用化も正しくリスト名やtemplatetags
自作でなんとかなると分かってからは早かった、かな。
なかなか検索一発で出てこないこともありますし、知っている人が知っている人向けに書いていることも多いので、何も知らない状態だと読んでもすぐに理解出来ないこともあるよなーと今回改めて思った次第です。微妙に綴りが違っていることだって当然あるしね。。。うん、仕方ない。
今回はDjango(Python)というより、htmlのこと、かな。
公開箇所では使ってないですが、管理用画面(記事登録など)では日時の入力項目があります。
前は普通にテキスト入力していたんですが、今回はせっかくなので、テンプレートでdatetime-local型入力を使ってみました。
ただ、こいつ(口が悪い)結構曲者だったみたいですね。
ネットでもいくつか情報ありましたが、日付と時間の間は空白でなく「T」でないといけない模様。
つまり、テンプレートで単純に項目のオブジェクトしてやるのではなく、自分で項目名や値など書いてあげる、さらには値は書式指定してあげる必要がある訳ですね。ちょびっと面倒。
# 通常は # {{ form.published_at }} # で済ませてしまうけど、これではだめなのです。。。 # 正しい書き方 <div class="form-control"> <input type="datetime-local" name="{{ form.published_at.name }}" value="{% if form.publised_at.value %}{{ form.published_at.value | date:"Y-m-d\TH:i" }}{% endif %}"> </div>
ちなみに書式指定しないとhtml側で値を理解出来ず、空白のまま、で、システム日付となるみたいですねー。
(うん、データ登録しかチェックしてなかったので、気付くの遅れた。。。)
これhtmlというかRFC仕様。
仕様が変わる可能性もあるから、気を付けないとーなのかな?
あと、「T」を書式指定内でも文字列と認識させるため、エンコードが必要。(encode でなく円マークね)
はぁ、やっぱりきちんと調べたり知っておくことって必要。
さらに言えばテスト大事!
メニューページ
メインコンテンツ
タグ別
公開日別
Popular Entries
Recent Comments
Information
Recent Update
Preview
Information(Board)