如何在基于类的视图django中过滤对象
我有一个关于博客文章细节的类,如下所示:如何在基于类的视图django中过滤对象,django,django-views,Django,Django Views,我有一个关于博客文章细节的类,如下所示: class MaghaleDetail(DetailView): model = MaghaalaatPost template_name = 'Blog/Blog-elmi-detail.html' context_object_name = 'maghaale' def get_context_data(self, **kwargs): context = super().get_context_da
class MaghaleDetail(DetailView):
model = MaghaalaatPost
template_name = 'Blog/Blog-elmi-detail.html'
context_object_name = 'maghaale'
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context["related_items"] = self.object.tags.similar_objects()[:3]
context["images"] = MaghaalaatImages.objects.all()
return context
这是我的模型:
class MaghaalaatPost(models.Model):
title = models.CharField(max_length=250)
paragraph = models.TextField(blank=True)
class MaghaalaatImages(models.Model):
post = models.ForeignKey(MaghaalaatPost, default=None,
on_delete=models.CASCADE)
images = models.FileField(upload_to='post_images', blank=True)
图像上下文显示每个图像,因为我将其设置为all()。如何过滤它以仅显示此特定帖子的图像?您实际上不需要将其传递到上下文。如果定义了一个关系(如
外键
、OneToOneField
、ManyToManyField
等),Django将在目标模型中添加一个管理器以访问相关对象,因此,您可以通过以下方式访问模板中的相关对象:
{% for image in maghaale.maghaalaatimages_set.all %}
… do something with image …
{% endfor %}
请分享你的
maghalaatimages
模型的(相关部分),特别是与MaghalaatPost
的关系。在这里,我已经更新了模型。是的,但是如果我想在get\u context\u数据中添加一个过滤器,我该怎么做?@Sam:同样的方法。
class MaghaleDetail(DetailView):
model = MaghaalaatPost
template_name = 'Blog/Blog-elmi-detail.html'
context_object_name = 'maghaale'
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['related_items'] = self.object.tags.similar_objects()[:3]
context['images'] = self.object.maghaalaatimages_set.all()
return context