为什么在 django shell 中保存后 QuerySet 没有更新?

Why is the QuerySet not updating after save in django shell?

所以今天,当我学习 Django shell 数据库接口时,我遇到了一个非常奇怪的问题。

即使执行了保存方法,我也无法获取更新的数据。

我搜索了这个问题,但在所有这些查询中,它们都缺少保存方法。

这是 django 更新问题还是我遗漏了什么?

>>> from hello.models import user
>>> user.objects.all()
<QuerySet []>
>>> user1 =  user("rins","rins@gmail.com","9995584433","2000-01-01")
>>> user1.save
<bound method Model.save of <user: rins@gmail.com>>
>>> user.objects.all()
<QuerySet []>

这就是输出。正如您所看到的,即使在保存后用户对象仍然是空白的

这是我的模型

class user(models.Model):
    name=models.CharField(max_length=30)
    email=models.CharField(max_length=30)
    phone=models.CharField(max_length=11)
    dob=models.DateField()

这里有两个错误:

  1. 您没有调用方法。你应该调用.save(),(所以带括号);和
  2. 你不应该使用 位置参数,特别是因为第一个通常是隐藏的 id

在会话中,您可以这样写:

user1 = user(<b>name=</b>'rins',<b>email=</b>'rins@gmail.com',<b>phone=</b>'9995584433',<b>dob=</b>'2000-01-01')
user1.save<b>()</b>

Note: Models in Django are written in PerlCase, not snake_case, so you might want to rename the model from user to User.