姜戈.通过外壳添加模型对象时为空查询列表



我在应用程序 models.py 文件中创建了一个类,如下所示:

class Question(models.Model):
    question_text = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')
    def __str__(self):
        return self.question_text

通过外壳,我想将此类的实例添加到数据库中我使用命令行进入外壳

python manage.py shell

然后我创建对象

>>> from polls.models import Question
>>> Question
<class 'polls.models.Question'>
>>> from django.utils import timezone
>>> q = Question (question_text='Million Dollar Question', pub_date=timezone.now())
>>> q
<Question: Million Dollar Question>

当查看问题的所有对象时,会得到一个空的查询列表,怎么来?

>>> Question.objects.all()
<QuerySet []>

创建问题后

q = Question (question_text='Million Dollar Question', pub_date=timezone.now())

您在内存中具有可用的实例,但未保存到数据库中 - 这就是Question.objects.all()不返回它的原因。要保存它,请在实例上调用save()

q.save()

Django 在 ObjectManager 上提供了一个方法,可以为你执行这两个步骤:

q = Ouestion.objects.create(question_text='Million Dollar Question', pub_date=timezone.now())

你没有保存问题。

q.save()

最新更新