无法通过博客实例访问管理器

时间:2014-03-01 13:38:42

标签: python django mongodb sqlite

我正在使用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

3 个答案:

答案 0 :(得分:6)

你的问题在这一行:

print [e.name for e in b.objects.all()]  # won't work

bBlog实例,不会访问对象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类获得,而不能从其实例中获得。

但目前尚不清楚你要做什么。您希望列表理解能够返回什么?