我目前在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发布于 2013-02-03 19:26:50
Book模型中的publication_date尚未设置,这就是为什么您会看到no attribute 'year'错误(空白字符串没有年份属性,因为它不是真正的datetime)。
尝试将publication_date字段更改为
publication_date = models.DateField(auto_add_now=True)并清空您的数据库以重新启动(旧型号仍将为空,并产生此错误)。auto_add_now将预填充模型创建时的publication_date,您可以在以后对其进行更改。有关DateField here的更多信息。
请注意,只有在添加排序选项时才会看到此错误,因为到目前为止,您还没有访问publication_date字段的原因-因此没有引发任何错误。
编辑
您可以使用以下命令完全重置数据库
$ python manage.py sqlclear <app_name> | python manage.py dbshell它打印出用于清除数据库sqlclear的SQL,然后将其发送到数据库(|或管道)并传递给dbshell。然后运行
$ python manage.py syncdb重新同步您的模型和数据库。请注意,您通常不需要经历所有这些!
https://stackoverflow.com/questions/14671388
复制相似问题