我有一个基于DetailView
的类,其模型为Property
作为主要模型。该模型与我存储一些图像的模型PropertyImage
有外键关系。我想在模板PropertyImages
中显示detail_view.html
的所有相关图像以及Property
的一些细节。我知道如何在基于函数的视图中进行操作,我尝试了很多事情,但我一直都失败了。也许这只是一些小事情,但我无法使其正常工作。
这是我的代码:
# models.py
from django.db import models
class Property(models.Model):
title = models.CharField(max_length=140, default="Title",)
description = models.TextField(max_length=2000)
# ... and some more fields
def __str__(self):
return self.title
class PropertyImage(models.Model):
property = models.ForeignKey(Property, on_delete=models.CASCADE, related_name='images')
image = models.ImageField(upload_to='images/')
figcaption = models.CharField(max_length=160)
def __str__(self):
return self.figcaption[:50]
# views.py
from django.views.generic import DetailView
from .models import Property
class PropertyDetailView(DetailView):
model = Property
template_name = 'property_detail.html'
要进行更快的评估,请查看<!-- Here I'm stuck -->
部分:
<!-- property_detail.html -->
{% extends 'base.html' %}
{% block content %}
<div class="container">
<div class="property-entry">
<img src="{{ property.cover_image.url }}" alt="{{ property.title }}" class="img-fluid">
<h2>{{ property.title }}</h2>
<p>Description: {{ property.description }}</p>
<!-- Here I'm stuck -->
{% for image in property.propertyimage_set.all %}
<img src="{{ image.image.url }}">
<p>{{ image.figcaption }}</p>
{% endfor %}
</div>
</div>
{% endblock content %}
感谢您的帮助。
答案 0 :(得分:2)
由于您related_name=…
至ForeignKey
的{{1}}设置为Property
,因此要反向访问图像,它就是related_name='images'
:
property.images.all