将自定义方法添加到模型时出错(来自Django教程)

将自定义方法添加到模型时出错(来自Django教程),django,django-models,Django,Django Models,我不熟悉Python,尤其是Django。在试图潜入水中时。框架,并运行了它的官方教程,我得到了一些令人头痛的错误,它说: 属性错误:“Poll”对象没有属性“最近发布” 我在django shell中键入下一个(由projects目录中的“python manage.py shell”调用): >>>从polls.models导入Poll,选择 >>>从django.utils导入时区 >>>p=Poll.objects.get(pk=1) >>>p.最近出版了吗 我得到下一个shell输出:

我不熟悉Python,尤其是Django。在试图潜入水中时。框架,并运行了它的官方教程,我得到了一些令人头痛的错误,它说:

属性错误:“Poll”对象没有属性“最近发布”

我在django shell中键入下一个(由projects目录中的“python manage.py shell”调用):

>>>从polls.models导入Poll,选择
>>>从django.utils导入时区
>>>p=Poll.objects.get(pk=1)
>>>p.最近出版了吗

我得到下一个shell输出:

回溯(最近一次呼叫最后一次):
文件“”,第1行,在
AttributeError:“轮询”对象没有属性“最近发布过”

有人能帮我弄清楚我做错了什么吗?因为我不知道什么会导致这样的错误…(已经在谷歌上搜索了这个问题,但没有找到一个可以解决我的问题的答案)

我使用:
Django版本1.5.1
Python版本2.7.5

以下是我的“投票”模型代码:

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

class Poll(models.Model):
    question = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')

    def __unicode__(self):
        return self.question

    def was_published_recently(self):
        return self.pub_date >= timezone.now() - datetime.timedelta(days=1)


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
另外,这是我的“管理员”文件:


请确保使用4个空格作为缩进,而不是制表符,制表符使函数无法识别。

我想它所说的是,您没有在类中包含任何was\u published\u recently函数。感谢您包含admin.py和polls.py文件,但我认为您需要确保在models.py文件中有两个空格hings.看来你需要确保

from django.utils import timezone 

def was_published_recently(self):
    return self.pub_date >= timezone.now() - datetime.timedelta(days=1)

都包含在models.py文件中。

尝试
轮询时的输出是什么?最近发布了吗()
在shell中?如果有效,您是否也重新启动服务器以获取代码中的更改?我得到下一个输出:“回溯(最近一次调用):文件”,第1行,在AttributeError中:“Poll'object has no attribute'was_published_recently'”哇…为我修复了它。太奇怪了…禁忌似乎没有影响任何其他东西。使用的是SublimeText@kenshinji-请参阅:
from django.utils import timezone 

def was_published_recently(self):
    return self.pub_date >= timezone.now() - datetime.timedelta(days=1)