Django的。通过shell添加模型对象时清空查询列表

时间:2017-11-12 15:28:51

标签: django django-models

我在我的应用程序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

通过shell我想将此类的实例添加到数据库中 我使用

通过命令行输入shell
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 []>

2 个答案:

答案 0 :(得分:1)

创建问题后

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())

答案 1 :(得分:0)

你没有保存这个问题。

q.save()