python - 为什么在 django shell 中保存后 QuerySet 不更新?
问题描述
所以今天,当我在学习数据库的 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()
解决方案
这里有两个错误:
- 您没有调用该方法。您应该调用
.save()
, (带括号);和 - 你不应该使用位置参数,特别是因为第一个参数通常是隐藏的
id
。
在会话中,您可以这样写:
user1 = user(name='rins',email='rins@gmail.com',phone='9995584433',dob='2000-01-01')
user1.save()
注意:Django 中的模型是用 PerlCase 编写的,而不是snake_case,因此您可能希望将模型从 重命名
为user
User
。