我正在从文档中学习django。
以下是models.py
:
from django.db import models
class Question(models.Model):
question_text = models.CharField(max_length=200)
pub_date = models.DateTimeField('date published')
class Choice(models.Model):
question = models.ForeignKey(Question, on_delete=models.CASCADE)
choice_text = models.CharField(max_length=200)
votes = models.IntegerField(default=0)
这在shell中执行:
q = Question.objects.get(pk=1)
>>> q.choice_set.all()
<QuerySet []>
此处使用why q.choice_set
代替q.Choice_set
?
是choice_set
是一些内置函数还是由于models.py
中的选择而使用它,如果是这样,为什么它的第一个字母是小写的呢?
答案 0 :(得分:2)
因为the documentation这样说:
如果模型具有
ForeignKey
,则外键模型的实例将有权访问返回第一个模型的所有实例的Manager
。默认情况下,此Manager
名为FOO_set
,其中FOO
是源模型名称,小写。
答案 1 :(得分:0)
它的小写,因为Python中遵循的主要编码标准是Pep8,而functionnames和instance variables所指示的应该是小写的。
函数名称应为小写,并根据需要用下划线分隔,以提高可读性。