我想通过类别过滤图像。它有效,但不是我想要的方式。这里是我的模型是如何设置的:试图在Django中按类别过滤图像
class Image(models.Model):
CATEGORY_CHOICES = (
('Cover', 'Cover'),
('Scan', 'Scan'),
('Other', 'Other'),
)
title = models.CharField(max_length=256)
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']
class Issue(models.Model):
...
images = models.ManyToManyField(Image, related_name="images_inc", blank=True, null=True)
....
def __unicode__(self):
return u'%s #%s' % (self.title, self.number)
def get_absolute_url(self):
return "/issues/%s" % self.slug
class Meta:
ordering = ['-date_added']
Views.py:
def issue(request, issue_slug):
issue = get_object_or_404(Issue, slug=issue_slug)
cover = Image.objects.filter(category='Cover')
scan = Image.objects.filter(category='Scan')
return render_to_response('comics/issue_detail.html', {'issue': issue, 'cover': cover, 'scan': scan}, context_instance=RequestContext(request))
我试图通过封面或扫描到过滤它,你可以看到,但是当我把这个变成我的模板:
{{ cover }} or {{ scan }}
它返回:
<Image: Astonishing X-Men 1 Cover A>] [<Image: Astonishing X-Men 1, teamshot>]
显然,我需要它返回图片网址。添加{{cover.url}}不起作用。
哦,我刚刚意识到它没有显示问题中的特定图像。它显示分类为扫描或封面的所有图像。
这工作,很好。非常感谢。我遇到的唯一问题 - 有时,有多个封面和多个扫描 - 绝对不止一个扫描。在这些意见中我会怎么做呢?我将[0]移除给他们,但是这只是没有任何显示。 – AAA 2011-04-25 22:41:27