首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >date_hierarchy = 'publication_date‘错误

date_hierarchy = 'publication_date‘错误
EN

Stack Overflow用户
提问于 2013-02-03 18:09:29
回答 1查看 373关注 0票数 1

我目前在chapter 6 of the Djangobook tutorial上。我正在按照指示工作,直到!

我将date_hierarchy = 'publication_date‘添加到代码中

代码语言:javascript
复制
class BookAdmin(admin.ModelAdmin):
    list_display = ('title', 'publisher', 'publication_date',)
    list_filter = ('publication_date',)
    search_fields = ('title',)
    date_hierarchy = 'publication_date'

以上就是我到目前为止在我的admin.py模型上所做的。

我得到的错误是

代码语言:javascript
复制
    Request Method: GET
    Request URL:    http://127.0.0.1:8000/admin/books/book/
    Django Version: 1.4.3
    Exception Type: AttributeError
    Exception Value:    
    'unicode' object has no attribute 'year'
    Exception Location: /usr/local/lib/python2.7/dist-packages/django/contrib/admin/templatetags/admin_list.py in date_hierarchy, line 302
    Python Executable:  /usr/bin/python
    Python Version: 2.7.3
    Python Path:    
    ['/home/bradford/Development/Djangocode/mysite',
     '/usr/lib/python2.7',
     '/usr/lib/python2.7/plat-linux2',
     '/usr/lib/python2.7/lib-tk',
     '/usr/lib/python2.7/lib-old',
     '/usr/lib/python2.7/lib-dynload',
     '/usr/local/lib/python2.7/dist-packages',
     '/usr/lib/python2.7/dist-packages',
     '/usr/lib/python2.7/dist-packages/PIL',
     '/usr/lib/python2.7/dist-packages/gst-0.10',
     '/usr/lib/python2.7/dist-packages/gtk-2.0',
     '/usr/lib/pymodules/python2.7',
     '/usr/lib/python2.7/dist-packages/ubuntu-sso-client',
     '/usr/lib/python2.7/dist-packages/ubuntuone-client',
     '/usr/lib/python2.7/dist-packages/ubuntuone-control-panel',
     '/usr/lib/python2.7/dist-packages/ubuntuone-couch',
     '/usr/lib/python2.7/dist-packages/ubuntuone-installer',
     '/usr/lib/python2.7/dist-packages/ubuntuone-storage-protocol']
    Server time:    Sun, 3 Feb 2013 03:42:02 -0600

不太确定该怎么做!如有任何帮助,我们不胜感激!

代码语言:javascript
复制
class Book(models.Model):
    title = models.CharField(max_length = 100)
    authors = models.ManyToManyField(Author)
    publisher = models.ForeignKey(Publisher)
    publication_date = models.DateField(blank = True, null = True)

    def __unicode__(self):
        return self.title
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-03 19:26:50

Book模型中的publication_date尚未设置,这就是为什么您会看到no attribute 'year'错误(空白字符串没有年份属性,因为它不是真正的datetime)。

尝试将publication_date字段更改为

代码语言:javascript
复制
publication_date = models.DateField(auto_add_now=True)

并清空您的数据库以重新启动(旧型号仍将为空,并产生此错误)。auto_add_now将预填充模型创建时的publication_date,您可以在以后对其进行更改。有关DateField here的更多信息。

请注意,只有在添加排序选项时才会看到此错误,因为到目前为止,您还没有访问publication_date字段的原因-因此没有引发任何错误。

编辑

您可以使用以下命令完全重置数据库

代码语言:javascript
复制
$ python manage.py sqlclear <app_name> | python manage.py dbshell

它打印出用于清除数据库sqlclear的SQL,然后将其发送到数据库(|或管道)并传递给dbshell。然后运行

代码语言:javascript
复制
$ python manage.py syncdb

重新同步您的模型和数据库。请注意,您通常不需要经历所有这些!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14671388

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档