2016-11-14 6 views
0

これは非常に一般的な質問ですが、答えが見つからないようです。ホテルルームを参照しているルームというモデルがあるとします。私は過去、現在、未来の部屋占有を示す時系列を持っていたいと思います。Djangoモデルのデータを時間の経過とともに記録する

私は "{date}:room.guest}のような辞書を持っていましたが、私はどのようにしてDjango Modelの辞書を定義できるのか分かりません。このアプローチはDjango内で実現可能ですか?この目標を達成するためには、どのような選択肢が必要ですか?

現在、私のルームモデルは非常に単純で、次のようになります。

答えて

0

Djangoのモデルは単にラッパー(スマートラッパーまだである

class Room(models.Model): 

    number = models.IntegerField() 

    room_type = models.ForeignKey('RoomType') 

    def __str__(self): 
     return "Room {}".format(self.number) 

ルーム自体ゲストモデルの外部キー..ですラッパーのみ)を使用します。明白な解決策は、リレーショナルデータベースレベルでこの機能をどのように設計するのかを考え、それをDjangoモデルとして書くことです。 IOW: "職業"を格納するdbテーブルが必要です。

class Occupation(models.Model): 
    room = models.ForeignKey(Room) 
    guest = models.ForeignKey(Guest) 
    date = models.DateField(...) 

# etc 
+0

ありがとうございます。この方法では、私が望むようにデータを表示することができません。 URLから月と年を渡して、部屋や日付を繰り返して占領データを表示しなければならないビューがある場所。だから私は月と年の職業をフィルタリングし、これをテンプレートに渡し、私はテンプレートと日と部屋のリストを渡すとしましょう。私はその後、テーブルを埋めるために、部屋と日以上のループを使用します。テンプレートにoccupation.dis__day = dayとoccupation.room = roomのoccupation.is_occupiedを取得させるにはどうすればよいですか? –

+0

ロジックをテンプレートに入れないでください。テンプレートはモデルやビューのいずれかに属します。 –

+0

あなたはそれを達成する方法について私にいくつかアドバイスを与えることができますか?私が見る限り、私はテンプレートにロジックを入れません...私はちょうどテンプレートの種類のような特定の変数..の値を表示したいのですが? –

関連する問題