代码之家  ›  专栏  ›  技术社区  ›  Rick

Django,数据库检索不工作,但删除字段和添加新字段正在工作

  •  2
  • Rick  · 技术社区  · 15 年前

    我已经能够让我的数据库查询在删除现有条目和向数据库添加新条目时正常工作,但是我完全无法理解为什么我无法从数据库中检索任何内容。我正在尝试以下查询:

    from web1.polls.models import Poll
    retquery = Poll.objects.all()
    print retquery
    --prints: "[ ]"
    

    另外,如果我尝试这个,它只返回“poll object”

    from web1.polls.models import Poll
    retquery = Poll.objects.all()[0]
    print retquery
    --prints: "poll object"
    

    我已经看了所有的东西,数据库中肯定有条目,我尝试了一些不同的模型,其他的东西都在工作,否则我不知道我现在能做什么,任何建议都非常感谢

    2 回复  |  直到 15 年前
        1
  •  1
  •   shahjapan    15 年前

    如果你提供的很好 __unicode__ 方法到你的模型,你不会有这样的问题…

    http://www.djangoproject.com/documentation/models/str/
    
        2
  •  0
  •   Rick    15 年前

    我终于明白了这一点,我要把它留下来,因为这对于像我这样对python还不太熟悉的人来说是非常令人困惑的,因为django的文档并不能完全清楚地说明这一点,我习惯于打印一个对象,并让它列出其中的所有内容,但出于某种原因,返回的对象类型的格式不是这样的。将起作用,因此需要从查询中获取结果变量,并在末尾添加字段名称,以便访问它,例如:

    If I have a field named "question" that I want to retrieve:
    retquery = Poll.objects.all()
    print retquery.question
    

    这是可行的,而我在打印之前所做的一切却让我觉得返回的对象是空的。