She*_*009 7 python django datetime
我在视图中有评论,我想用列表顶部的最新评论对它们进行排序.但它不起作用.我收到这个错误.
Caught TypeError while rendering: 'Comment' object is not iterable
我不太确定导致这个问题的原因.这是我的观点和模型可能会有所帮助.
查看
def home(request):
comments = Comment.objects.latest('datetime')
return render_to_response('home.html', {'comments':comments}, context_instance=RequestContext(request))
Run Code Online (Sandbox Code Playgroud)
楷模
class Comment(models.Model):
name = models.CharField(max_length = 40)
datetime = models.DateTimeField(default=datetime.now)
note = models.TextField()
def __unicode__(self):
return unicode(self.name)
Run Code Online (Sandbox Code Playgroud)
该latest
方法只返回一个对象,而不是迭代器:https:
//docs.djangoproject.com/en/dev/ref/models/querysets/#latest
使用该order_by
方法按日期排序(文档中的第一个示例):https:
//docs.djangoproject.com/en/dev/ref/models/querysets/#django.db.models.query.QuerySet.order_by
最简洁的方法是在模型中添加一个类元,并添加如下的排序参数:
class Comment(models.Model):
name = models.CharField(max_length = 40)
datetime = models.DateTimeField(default=datetime.now)
note = models.TextField()
class Meta:
ordering = ('-datetime')
def __unicode__(self):
return unicode(self.name)
Run Code Online (Sandbox Code Playgroud)
因此,您所做的每个查询都将按日期时间排序.
另一个建议是不选择"datetime"作为字段名称,datetime是标准库中包含的python模块.
归档时间: |
|
查看次数: |
11668 次 |
最近记录: |