0

模型.py

from django.db import models
import datetime
from django.utils import timezone

class Poll(models.Model):

    question = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')

    def __unicode__(self):
        return self.question

class Choice(models.Model):

    poll = models.ForeignKey(Poll)
    choice_text = models.CharField(max_length=200)
    votes = models.IntegerField(default=0)

    def __unicode__(self):
        return self.choice_text

每当我进入

Poll.objects.all()

其中 Poll 是它显示的表名

[<Poll: Poll object>,<Poll: Poll object>]

但我希望输出包含表格的内容。我应该怎么办?请帮助我,因为我是 python 新手。

我试过了:

class Poll(models.Model):
    title = models.CharField(max_length=128)

    def __unicode__(self):
        return self.title

我尝试了上述步骤但是当我运行 python manage.py shell 它给出了 ERROR IndentationError: unexpected indent (models.py, line 8)

4

3 回答 3

1

来自django 文档(关于模型主题的详细信息)

class Poll(models.Model):
    title = models.CharField(max_length=128)

    def __unicode__(self):
        return self.title

如果你想显示投票的内容,你可能想as_table在你的模型中有一个类似的方法或者一些东西来返回适当的 HTML(或者更好的是,使用模板标签来呈现部分模板。)

假设您在模板中定义as_table并有一个poll上下文变量,那么您可以使用{{poll.as_table}}.

有关模板的更多详细信息:https ://docs.djangoproject.com/en/1.5/topics/templates/

__unicode__方法不应该用于执行复杂的渲染,并且主要用于在生成的管理页面中提供帮助。

于 2013-05-11T04:06:58.823 回答
0

您必须重新缩进文件

避免这个错误

http://www.python.org/dev/peps/pep-0008/#indentation

并且了解python缩进

我推荐使用 Djaneiro (Github) 的 sublime 编辑器 ( http://www.sublimetext.com/ ) 以获得适当的自动建议

于 2013-05-11T11:57:56.863 回答
0

代码的最后一部分看起来不错,但它在行首混合了 TABS 和 SPACES。您应该制作所有空格(现在是(取自您剪切和粘贴的源代码,TAB 替换为^,SPACE替换为%

^%%%%def __unicode__(self):
^%%%%^return self.choice_text

您应该将return self.choice_text代码中之前的字符直接替换为4 个空格。

摆脱这些的最简单方法是使用

python -m reindent your_file_name.py
于 2013-05-11T04:32:48.013 回答