Djangoで質問投稿サイト(teratailのようなもの)を作っています。
質問に対する複数の回答のうち、一つをベストアンサーにしたいと思います。
その場合のデータベースをどのようにしようかと悩んでいます。
現状のmodels.pyは添付のとおりです。
ベストアンサーに選ばれたかどうかは、class Answerのbest_answarがTrueかFalseかで
判定しています。
python
1# models.py 2# 質問を扱うモデル 3class Question(models.Model): 4 content = models.TextField() # 質問内容 5 … 6 datetime = models.DateTimeField(auto_now=True) # 投稿時間 7 8# 回答を扱うモデル 9class Answer(models.Model): 10 question = models.ForeignKey(Question, on_delete=models.CASCADE) 11 best_answer = models.BooleanField(default=False) 12 … 13 datetime = models.DateTimeField(auto_now=True) 14
しかし、これだと、複数の回答をベストアンサーにすることができてしまいます。
一方で、class Questionにbest_answer = models.ForeignKey(Answer, on_delete=models.CASCADE)という形でもたせると、ベストアンサーを選ぶときに、Questionのdatetimeも更新されてしまいます。
どうしたら、Question1つに対してベストアンサー1つとしつつ、ベストアンサーを選ぶときにQuestionのdatetimeを変更しないようにできるでしょうか。
お分かりの方、ご教示頂ければ幸いです。
よろしくお願い致します。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/04/17 04:38
2018/04/17 04:40
退会済みユーザー
2018/04/17 04:42
2018/04/17 04:46 編集