Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在基于类的视图django中过滤对象_Django_Django Views - Fatal编程技术网

如何在基于类的视图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