我正在使用Django(1.5.4),Python(2.7),sqlite3。
我想在sqlite3数据库中保存我的用户详细信息。我的代码是这样的;
这是models.py文件。
from django.db import models
class Blog(models.Model):
name = models.CharField(max_length=100)
tagline = models.TextField()
def __unicode__(self):
return self.name
这是我的views.py文件
def shiva(request):
b = Blog(name='Itons Blog', tagline='All the best to Iton team')
b.save()
print [e.name for e in b.objects.all()]
return HttpResponse("saved")
当我尝试在sqlite3中保存详细信息时,错误就会出现;
AttributeError at / Manager isn't accessible via Blog instances
答案 0 :(得分:6)
你的问题在这一行:
print [e.name for e in b.objects.all()] # won't work
b
是Blog
实例,不会访问对象Manager。您可以尝试这样做(如果您想要所有行,那么您从多个名称创建列表时就会出现这样的行):
print [e.name for e in Blog.objects.all()]
请注意Blog
中使用b
代替Blog.objects.all()
。无法通过b
访问对象管理器,但可以通过课程Blog
访问。
有关进一步说明(使用与您类似的示例),see the docs here。
答案 1 :(得分:2)
b.objects.all()
应为Blog.objects.all()
,因为必须从模型类而不是实例访问管理器(对象)。
答案 2 :(得分:2)
好吧,正如错误所说,管理员(.objects
)只能从Blog类获得,而不能从其实例中获得。
但目前尚不清楚你要做什么。您希望列表理解能够返回什么?