【发布时间】:2011-05-21 23:07:55
【问题描述】:
我正在尝试显示通过执行此操作添加的 8 个最新扫描:
def index(request):
....
recent_scans = Image.objects.filter(category='Scan').order_by('-date_added')[:8]
...
它“有效”,但实际上并没有获得最近的 8 次扫描。该顺序与def scans 的顺序不同。顺序并没有完全不同,只是有几张扫描错位了。
奇怪的是它在这个视图中起作用:
def scans(request):
image_list = Image.objects.filter(category='Scan').order_by('-date_added')
取出[:8] 看看它是否会正确排序 NOT 工作,但...所以我不知道它出了什么问题。我唯一的猜测是 Image 模型是通过 ManytoMany 连接的......
我也试过这个:
recent_scans = Image.objects.filter(category='Scan').latest('date_added')
但它带有这个错误:
渲染时捕获 TypeError:“图像”对象不可迭代
这是我的模型,顺便说一句:
class Image(models.Model):
CATEGORY_CHOICES = (
('Cover', 'Cover'),
('Scan', 'Scan'),
('Other', 'Other'),
)
title = models.CharField(max_length=128)
image = models.ImageField(upload_to="images/")
category = models.CharField(max_length=10, choices=CATEGORY_CHOICES)
contributor = models.ManyToManyField(Contributor, blank=True, null=True)
date_added = models.DateField(auto_now_add=True)
def __unicode__(self):
return self.title
class Meta:
ordering = ['title']
我尝试将 'get_latest_by = "date_added"` 添加到模型中的 Meta 类中,但这也不起作用。
【问题讨论】:
标签: django django-views