私は次のように定義されたモデルを持っています:
class Vote(models.Model):
text = models.CharField(max_length=300)
voters = models.ManyToManyField(CustomUser, blank=True)
game = models.ForeignKey(Game, on_delete=models.CASCADE)
投票が作成されたときに、関連するゲームのすべてのプレーヤーを投票者リストに自動的に追加する投票が必要です。Game
私は投票モデルの保存メソッドをオーバーライドしているので、モデルは、その選手を返すメソッドがあります。
def save(self, *args, **kwargs):
super().save(*args, **kwargs) #As the docs state it must be saved before m2m elements can be added
queryset = self.game.get_players
for player in queryset:
self.voters.add(player.id)
これは動作しません。エラーはスローされず、管理サイトを介してモデルインスタンスを問題なく保存します。ただし、voters
フィールドにプレーヤーが追加されていないようです(また、vote_votersテーブルはデータベースで空のままです)。
明らかなトラブルシューティング:クエリセットは間違いなく空ではなく、saveメソッドが確実に呼び出されています。
これは管理セクションの問題であることが判明しました。質問に示されている正確な保存方法を使用すると、フォームから送信したときに完全に機能しました。この回答への@Selcukのリンクこの回答は問題を解決しました
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加