我目前正在chapter 6 of the Djangobook tutorial。我遵循指示,一切都完美无缺!直到最后!
我将date_hierarchy ='publication_date'添加到我的代码
class BookAdmin(admin.ModelAdmin):
list_display = ('title', 'publisher', 'publication_date',)
list_filter = ('publication_date',)
search_fields = ('title',)
date_hierarchy = 'publication_date'
以上是我目前在admin.py模型上的内容。
我得到的错误是
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
不太清楚该怎么做!任何帮助表示赞赏!
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
答案 0 :(得分:1)
publication_date
模型中的Book
尚未设置,这就是您看到no attribute 'year'
错误的原因(空白字符串没有年份属性,因为它不是真实的{{1} }})。
尝试将datetime
字段更改为
publication_date
并清空您的数据库以重新开始(旧模型仍然是空白并产生此错误)。 publication_date = models.DateField(auto_add_now=True)
会将auto_add_now
预先填充到创建模型的时间,您可以稍后进行更改。有关publication_date
here的更多信息。
请注意,在您添加排序选项时,您才会看到此错误,直到您无法访问DateField
字段为止 - 因此未引发任何错误。
您可以使用
完全重置数据库publication_date
打印出用于清除数据库$ python manage.py sqlclear <app_name> | python manage.py dbshell
的SQL,然后将其发送到数据库(sqlclear
或管道)到|
。然后运行
dbshell
重新同步您的模型和数据库。请注意,您通常不需要完成所有这些操作!