Django 如何从类帐户获取图像,并在PostListView中使用它?

Django 如何从类帐户获取图像,并在PostListView中使用它?,django,django-models,django-views,Django,Django Models,Django Views,我得到了我的模板工作的图像,但正在显示的图像是当前登录用户的图像 如何对其进行过滤,以使Profile.objects.get(user=[文章用户的所有者])能够正常工作 错误代码显示:“PostListView”对象没有属性“user”。我不理解此错误代码,因为根据我的理解PostListView,其模型设置为Post,具有以下模型: class Post(models.Model): user = models.ForeignKey(to=settings.AUTH_USER_MO

我得到了我的模板工作的图像,但正在显示的图像是当前登录用户的图像

如何对其进行过滤,以使Profile.objects.get(user=[文章用户的所有者])能够正常工作

错误代码显示:
“PostListView”对象没有属性“user”
。我不理解此错误代码,因为根据我的理解
PostListView
,其模型设置为
Post
,具有以下模型:

class Post(models.Model):
    user = models.ForeignKey(to=settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
    title = models.CharField(max_length=200)
    text = models.TextField()
    ...
换句话说,每一篇博客帖子都有一个用户

    def get_context_data(self, **kwargs):
    context = super(PostListView, self).get_context_data(**kwargs)
    context['user_post'] = Post.objects.filter(user_id=self.request.user.id)
    # context['user_profile'] = Profile.objects.get(user=self.request.user.id)
    context['user_profile'] = Profile.objects.get(user=1)

    return context
我相信
self
在这里所做的是表示PostListView中的当前对象,对吗


你能帮我吗?我在理解文档时遇到了一些问题,因为文档中使用的语言对我来说很困难。

试试这样的方法

class PostListView(ListView):
   template_name = 'add_template_name.html'
   model = Post
   context_object_name = 'all_posts'

   def get_queryset(self):
       return Post.objects.all()
现在在你的模板中添加这个

{% for post in all_posts %}

   <img src="{{ post.user.profile_picture }}" alt="image">

   <p> {{ post.title }} </p>

{% endfor %}
{%for post in all_posts%}
{{post.title}}

{%endfor%}

每当您想要使用外键元素时,在本例中为user,您可以选择
post.user.
假设您的用户模型具有profile\u图片和用户名,您可以将它们分别显示为
post.user.profile\u图片
post.user.username
。有关更多信息,请浏览Django文档。

您是否使用用户id?(双下划线)?您应该使用双下划线来访问用户的id,或者只使用Post.objects.filter(user=self.request.user)@MohitHarshan进行筛选并仅显示来自该用户的帖子,但是我希望他们的个人资料照片也显示在listview中他们的名字旁边。如果你想显示每一篇文章,并显示他们的作者的图片,那么为什么要使用过滤器
post.objects.filter(user\u id=self.request.user.id)
,你可以将其称为
post.objects.all()
。在您的情况下,您仅尝试从特定用户调用post。@BidhanMajhi post和Profile来自两个不同的类,如果我使用
post.objects.all()
,它是否可以访问Profile类,因为它是通过
user
连接的?我该怎么做?
{% for post in all_posts %}

   <img src="{{ post.user.profile_picture }}" alt="image">

   <p> {{ post.title }} </p>

{% endfor %}