前提・実現したいこと
Python Djangoを勉強中です。公式チュートリアルをこなした程度の状態です。
日毎のデータを格納するModelを定義して、それをカレンダーのように1月分一覧表示したいです。
その一覧画面では日毎のデータを選択して個別の日毎データの編集画面に遷移したいです。
全ての日付に日毎データがあるのであれば、
Viewsクラスで1ヵ月分のクエリーを作ってそれで得られたModelインスタンスリストをQuerySetにセットしてやればよいです。
しかし最初は日毎データが存在しないのでクエリーだと当然0件もしくは入力したことのある日付の日毎データだけがQuerySetにセットされます。それをカレンダー表示しようと思ったら単純に考えるとHTMLの方で1ヵ月分のデータが揃っているか、揃っていないなら空行を表示する、ようなコーディングが必要になります。
できればサーバーロジック側で処理したいので、まずはQuerySetの中にダミーデータ(DBには存在しない空行データ)を差し込んでやろうというアプローチで考えましたが、QuerySetにデータを入れるにはどうもpkが必要?みたいでうまくいきませんでした。ネット上にもサンプルは見つけられませんでした。
クエリの段階で足りない日付データインスタンスをcreateしてやれば多分うまくいくのですが、この方法だと本来データが存在しない日付のデータがDB上に登録されてしまうと思います。しかも表示のクエリの段階で。
次に、QuerySetではなく、コンテキストデータとしてModelインスタンスのリストでも返してやろうと思いましたが、この方法でもpkエラーが発生してしまいます。恐らく一覧画面から日毎データの詳細画面か編集画面へのリンクのところでpkを使っているからです。
今回のような場合、Djangoではどのようなアプローチで実現するのが妥当でしょうか。ヒントを頂きたく、、、
また、今回のようなこういう場合はどうすれば?という疑問がネット検索では一切解決しないので、ヒントとは別に書籍や調べ方の紹介もして頂ければ幸いです。
よろしくお願いいたします。
補足情報(FW/ツールのバージョンなど)
Python 3.7.0
Django 2.1.4
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/03/15 04:58 編集
2019/03/15 05:39 編集
2019/03/18 01:57
2019/03/19 12:16