Django 试图呈现我通过 get_context_data() 添加到 DetailView 的数据

Django Trying to render the data that i added to a DetailView via get_context_data()

我正在制作一个简单的房地产应用程序,用户可以在其中创建 Estates。 Estate 模型有一个主图像,但用户可以使用另一个模型和表单上传多个图像。在作为 DetailView 的庄园详细信息页面上,我想显示有关作为当前庄园所有者的用户的图像和信息。我正在使用 get_context_data() 传递上述信息。虽然调试一切对我来说似乎都很好,但上下文包含有关用户和图像的信息,但不会呈现此信息。你能帮我解决这个问题吗?

我的用户模型通过以下方式链接到当前房产:

 user = models.ForeignKey(
    UserModel,
    on_delete=models.CASCADE,
)

这是 EstateImagesModel

class EstateImages(models.Model):
    IMAGE_UPLOAD_TO_DIR = 'estates/'

    estate = models.ForeignKey(
        Estate,
        related_name='images',
        on_delete=models.CASCADE,
    )
    image = models.FileField(
        upload_to=IMAGE_UPLOAD_TO_DIR,
    )

详细视图是

class EstateDetailsView(views.DetailView):
    model = Estate
    template_name = 'main/estates/estate_details.html'
    context_object_name = 'estate'

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        context['is_owner'] = self.object.user == self.request.user # this works fine
        estate_images = list(EstateImages.objects.filter(estate_id=self.object.id)) # returns a [<EstateImages: EstateImages object (10)>]
        seller = Profile.objects.filter(user_id=self.object.user_id) # returns a <QuerySet [<Profile: Profile.First Name Profile.Last Name>]>
        context.update({
            'estate_images': estate_images,
            'seller': seller,
        })
        return context

在模板中,这就是我尝试访问上下文数据的方式

  {% for image in estate_images %}
     <div class="carousel-item-b swiper-slide">
          <img src="{{ image.url }}" alt="">
            </div>
  {% endfor %}

对于用户:

 <div class="property-agent">
                                    <h4 class="title-agent">{{ seller.full_name }}</h4>
                                    <p class="color-text-a">
                                        {{ seller.description }}
                                    </p>

seller 未呈现,因为您将 queryset 传递给上下文,而不是实际的 模型实例 .我建议将您定义卖家的行更改为:

seller = Profile.objects.filter(user_id=self.object.user_id).first()

编辑:也发现图像渲染问题中的错误:

{% for estate_image in estate_images %}
    <div class="carousel-item-b swiper-slide">
        <img src="{{ estate_image.image.url }}" alt="" />
    </div>
{% endfor %}