django モデル メソッド

モデル定義

from django.db import models
from django.utils import timezone

class Question(models.Model):
    question_text = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')
    def __str__(self):
        return self.question_text
    def was_published_recently(self):
        return self.pub_date >= timezone.now() - datetime.timedelta(days=1)

class Choice(models.Model):
    question = models.ForeignKey(Question, on_delete=models.CASCADE) // リレーション定義
    choice_text = models.CharField(max_length=200)
    votes = models.IntegerField(default=0)
    def __str__(self):
        return self.choice_text

python shell

// id=2のレコードを取得
question = Question.objects.get(pk=2)

// questionのプロパティ参照
question.id
question.question_text

// リレーション先取得
choices = question.choice_set.all()

// カウント
choices.count()

// 配列から取得
choices[0].id
choices[0].votes

// リレーション元を取得
choices[0].question