微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在django shell中保存后,为什么QuerySet无法更新?

如何解决在django shell中保存后,为什么QuerySet无法更新?

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

即使执行了save方法,我也无法获得更新的数据。

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

这是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. 您没有调用该方法。您应该 call .save(),(因此带括号);和
  2. 您不应使用位置参数,尤其是因为第一个通常是隐藏的id

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

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

注意:Django中的模型是用 PerlCase 而不是 snake_case 编写的, 因此您可能希望将模型从 user 重命名为User

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。