Coverage for polls / models.py: 82%

22 statements  

« 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 

5 

6# Create your models here. 

7 

8class Question(models.Model): 

9 '''質問クラス。 

10 ''' 

11 question_text: str = models.CharField(max_length=200) 

12 '''質問内容''' 

13 pub_date = models.DateTimeField('date published') 

14 '''質問の公開日''' 

15 

16 def __str__(self): 

17 '''質問インスタンスの文字列表現。 

18 ''' 

19 return self.question_text 

20 

21 def was_published_recently(self): 

22 '''質問の公開日が過去1日以内かを判定する。 

23  

24 Returns: 

25 boolean: 質問の公開日が過去1日いないの場合はTrue、そうでない 

26 場合はFalseを返す。 

27  

28 ''' 

29 now = timezone.now() 

30 return timezone.now() - datetime.timedelta(days=1) <= self.pub_date <= now 

31 

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: 選択肢に対する投票数。''' 

41 

42 def __str__(self): 

43 '''選択肢インスタンスの文字列表現。 

44 ''' 

45 return self.choice_text