私は、クラスの "生きている"インスタンスのリストを決定する操作を頻繁に行っています。インスタンスがライブかどうかを判断するには、現在のクラスのis_liveメソッドに対してテストしています - 下記を参照してください。自己のないインスタンスのリストを返すメソッド
class Game(models.Model):
def is_live(self):
now = timezone.now()
now.astimezone(timezone.utc).replace(tzinfo=None)
if self.time is not None and now < self.time:
return True
if self.time is None:
return True
else:
return False
は、代わりに私のすべてのビューで、このループを実行するので、私はそれがすべてのライブインスタンスのリストを返し実行するための別の方法を作成するのが大好きです。しかし、そうするために、私は自己の使用を必要とせず、私がそうしようとするたびにエラーが発生しています。どのようにこれを完了するための任意のアイデア。ループは、その後、私はちょうどGame.live_game_list()を呼び出し、すべてのゲームのリストを取得することができるだろう
def live_game_list():
live_game_list = []
for game in Game.objects.all():
if game.is_live == True:
live_game_list.append(game)
return live_game_list
以下のようなものになるだろう。
game_objectsをどのように設定しますか?ちょうどGame.objects.all()? –
ゲームを保持する必要があるコンテナに設定できます。以下の@Karinによって記述された方法は、そのような解決策の1つです(彼女がなぜ落とされたのか不明)。 '.all()'メソッドは元のコードと一貫していましたが、なぜそれが必要なのかわかりません。コンテナがゲームオブジェクトのリストであれば、 '' game_objects if game.is_live ''を使って単純に反復することができます。 – Alexander