Coverage for polls / models.py: 82%
22 statements
« prev ^ index » next coverage.py v7.13.0, created at 2025-12-21 13:48 +0900
« prev ^ index » next coverage.py v7.13.0, created at 2025-12-21 13:48 +0900
1# -*- config: utf8 -*-
2import datetime
3from django.db import models
4from django.utils import timezone
6# Create your models here.
8class Question(models.Model):
9 '''質問クラス。
10 '''
11 question_text: str = models.CharField(max_length=200)
12 '''質問内容'''
13 pub_date = models.DateTimeField('date published')
14 '''質問の公開日'''
16 def __str__(self):
17 '''質問インスタンスの文字列表現。
18 '''
19 return self.question_text
21 def was_published_recently(self):
22 '''質問の公開日が過去1日以内かを判定する。
24 Returns:
25 boolean: 質問の公開日が過去1日いないの場合はTrue、そうでない
26 場合はFalseを返す。
28 '''
29 now = timezone.now()
30 return timezone.now() - datetime.timedelta(days=1) <= self.pub_date <= now
32class Choice(models.Model):
33 '''回答の選択肢のクラス。
34 '''
35 question = models.ForeignKey(Question, on_delete=models.CASCADE)
36 '''選択肢に関連する質問。'''
37 choice_text: str = models.CharField(max_length=200)
38 '''str: 選択肢の文言。'''
39 votes = models.IntegerField(default=0)
40 '''int: 選択肢に対する投票数。'''
42 def __str__(self):
43 '''選択肢インスタンスの文字列表現。
44 '''
45 return self.choice_text