我一直在把这头发拉出来,似乎有一个非常简单的解决方案,但是我太盲目了.我已经从Django 1.4.3升级到Django 1.6,从那时起我在尝试使DateTimeField工作时遇到了断言错误.
这是我的模特
class Article(models.Model):
'''Article Model'''
banner = models.ImageField(verbose_name="Banner", null=True, blank=True, upload_to='ajax_uploads/banners', max_length=300)
title = models.CharField(
verbose_name = _(u'Title'),
help_text = _(u' '),
max_length = 255
)
slug = models.SlugField(
verbose_name = _(u'Slug'),
help_text = _(u'Uri identifier.'),
max_length = 255
)
content_markdown = models.TextField(
verbose_name = _(u'Content (Markup)'),
help_text = _(u' '),
)
content_markup = models.TextField(
verbose_name = _(u'Content (Markup)'),
help_text = _(u' '),
)
categories = models.ManyToManyField(
Category,
verbose_name = _(u'Categories'),
help_text = _(u' '),
null = True,
blank = True
)
date_publish = models.DateTimeField(
default=datetime.date.today,
verbose_name = _(u'Publish Date'),
help_text = _(u' ')
)
class Meta:
app_label = _(u'blog')
verbose_name = _(u'Article')
verbose_name_plural = (u'Articles')
ordering = ['-date_publish']
def save(self):
self.content_markup = markdown(self.content_markdown, ['codehilite'])
super(Article, self).save()
def __unicode__(self):
return '%s' % (self.title,)
Run Code Online (Sandbox Code Playgroud)
views.py:
def index(request):
'''News index'''
archive_dates = Article.objects.dates('date_publish','month', order='DESC')
categories = Category.objects.all()
page = request.GET.get('page')
article_queryset = Article.objects.all()
paginator = Paginator(article_queryset, 5)
try:
articles = paginator.page(page)
except PageNotAnInteger:
#If page requested is not an integer, deliver first page.
articles = paginator.page(1)
except EmptyPage:
#If page requested is out of range, deliver last page of results.
articles = paginator.page(paginator.num_pages)
return render(
request,
'blog/article/index.html',
{
'articles' : articles,
'archive_dates' : archive_dates,
'categories' : categories
}
)
Run Code Online (Sandbox Code Playgroud)
和模板
<div class="8u skel-cell-important">
{% for item in articles %}
<!-- Content -->
<article class="box is-post">
<a href="{% url "blog-article-single" slug=item.slug %}" class="image image-full"><img src="/media/{{ item.banner }}" alt="" /></a>
<header>
<h2><a href="{% url "blog-article-single" slug=item.slug %}">{{ item.title }}</a></h2>
<span class="byline">Published {{ item.date_publish|date:"j, M, Y" }}</span>
</header>
<p>
{{ item.content_markup|safe|slice:":250" }}...
</p>
</article>
{% endfor %}
</div>
Run Code Online (Sandbox Code Playgroud)
最后错误追溯:
AssertionError at /blog/
'date_publish' is a DateTimeField, not a DateField.
Request Method: GET
Request URL: http://localhost:8000/blog/
Django Version: 1.6.1
Exception Type: AssertionError
Exception Value:
'date_publish' is a DateTimeField, not a DateField.
Exception Location: /usr/local/lib/python2.7/dist-packages/django/db/models/sql/subqueries.py in _check_field, line 258
Python Executable: /usr/bin/python2.7
Python Version: 2.7.3
Python Path:
['/home/user/paperpxl',
'/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: Thu, 19 Dec 2013 15:28:43 +0000
Run Code Online (Sandbox Code Playgroud)
任何形式的帮助将不胜感激!
编辑:感谢您的帮助,我将回到发行说明再次阅读它们!我希望我像你一样关注细节.
date_publish是一个DateTimeField,而不是一个DateField.使用该datetimes()方法代替dates().
Article.objects.datetimes('date_publish', 'month', order='DESC')
Run Code Online (Sandbox Code Playgroud)
有关更多详细信息,请参阅1.6发行说明.
| 归档时间: |
|
| 查看次数: |
4674 次 |
| 最近记录: |