4

来自 Django 教程:

我已经将我的模型定义如下:

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

# Create your models here.

class Poll(models.Model):
    question = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')
    def __unicode__(self):  # Python 3: def __str__(self):
        return self.question
    def was_published_recently(self):
        return self.pub_date >= timezone.now() - datetime.timedelta(days=1)

class Choice(models.Model):
    poll = models.ForeignKey(Poll)
    choice_text = models.CharField(max_length=200)
    votes = models.IntegerField(default=0)
    def __unicode__(self):  # Python 3: def __str__(self):
        return self.choice_text

choice_set 在哪里定义,它是如何工作的?

>>> p = Poll.objects.get(pk=1)

# Display any choices from the related object set -- none so far.
>>> p.choice_set.all()
4

2 回答 2

4

我不知道你想要多深的解释,但是当你这样做时,Django 会为你定义它poll = models.ForeignKey(Poll)

你可以在这里阅读它。

于 2013-07-10T08:43:48.690 回答
0

choice_set 没有在任何地方定义。

Django 为关系的“另一端”创建 API 访问器——从相关模型到定义关系的模型的链接。例如,一个 Poll 对象 p 可以通过 choice_set 属性访问所有相关 Choice 对象的列表:p.choice_set.all()。

所以choice_set。其中choice 是小写的Choice 模型,_set 是一种Django 管理器工具。

详细信息,您可以在此处阅读。

于 2013-12-09T16:10:58.577 回答