Django objects.all()方法不返回任何数据

时间:2014-10-31 03:27:39

标签: python mysql django

我刚刚开始使用Django,一切正常,直到我尝试将django与数据库mysql连接起来。 这是我的问题:

我将此脚本添加到模型

class RootWord(models.Model):
    root_id = models.IntegerField(primary_key=True, null=False, unique=True, max_length = 10)
    rootword = models.CharField(null=False, max_length = 20)
    rootword_pos = models.CharField(null=False, max_length = 20)

    def __unicode__(self):
        return self.rootword

我在views.py

上写了这个
def select_from_db(request)
    rootword = RootWord.objects.all()
    return render(request, 'ecs/index.html', {'rootword': rootword})
index.html上的

<html><body>{{ rootword }}</body></html>

和返回值[]
(我已经启动了mysql服务)

2 个答案:

答案 0 :(得分:1)

我认为您的数据库中可能没有数据。

您可以使用Django shell验证:

python manage.py shell

然后

>>> from ecs import RootWord
>>> RootWord.objects.all()

看看它输出的是什么。

编辑: 您可以在Django shell中手动创建一些数据:

>>> rootword = RootWord(root_id=1, rootword="rootword", rootword_pos="wootword_pos")
>>> rootword.save()

在此之后,您应该看到一些输出;此外,如果你想在你的网页上创建数据,你必须发送一些POST请求并写一个视图来处理它。

答案 1 :(得分:0)

rootword = RootWord.objects.all() 

根词将是一个列表类型,其元素是根词实例,所以我认为你应该在模板中使用for循环,如下所示:

{% for xxx in rootword %}
    blah blah blah
{% endfor %}