Django 从不同型号获得特色图像
我有两个模型对象,Business和BusinessImage,与视图和index.html一起列出。我试图列出企业的特色形象,但它没有发生。我得到以下错误: “QuerySet”对象没有属性“businessimage\u set” 如何获取列表的业务特色图像 业务Django 从不同型号获得特色图像,django,python-3.x,Django,Python 3.x,我有两个模型对象,Business和BusinessImage,与视图和index.html一起列出。我试图列出企业的特色形象,但它没有发生。我得到以下错误: “QuerySet”对象没有属性“businessimage\u set” 如何获取列表的业务特色图像 业务 class Business(models.Model): name = models.CharField("Name", max_length=70, default="Business Name") slug
class Business(models.Model):
name = models.CharField("Name", max_length=70, default="Business Name")
slug = models.SlugField()
description = models.TextField("About", max_length=400)
category = models.ManyToManyField(Category, verbose_name="Categories", blank=True)
order = models.IntegerField("Order", default=0)
claimed = models.BooleanField("Claimed", default=False)
featured = models.BooleanField("Featured", default=False)
class Meta:
ordering = ['order']
verbose_name = "Business"
verbose_name_plural = "Businesses"
def __str__(self):
return self.name
商业形象
class BusinessImage(models.Model):
business = models.ForeignKey(Business)
image = models.ImageField(upload_to="images/business")
title = models.CharField(max_length=120)
featured = models.BooleanField(default=False)
timestamp = models.DateTimeField(auto_now_add=True, auto_now=False)
updated = models.DateTimeField(auto_now_add=False, auto_now=True)
def __str__(self):
return self.title
view.py
from .models import Business, BusinessImage
def index_view(request):
latest_business_list = Business.objects.all()
images = latest_business_list.businessimage_set.all()
template = loader.get_template('index.html')
context = RequestContext(request, {
'latest_business_list': latest_business_list,
'images': images,
})
return HttpResponse(template.render(context))
index.html
{% block content %}
<div class="text-center business_title">
<h2>Featured</h2>
</div>
{% if latest_business_list %}
{% for business in latest_business_list|slice:":4" %}
{% if business.active %}
<div class="col-sm-6 col-md-3">
<li><a href="business/{{ business.slug }}/">{{ business.name }}</a></li>
{% for image in latest_business_list.businessimage_set.all %}
{% if image.featured %}
<a href="{% url 'single_product' product.slug %}">
<img src="{{MEDIA_URL}}{{image.image}}" alt="{{image}}">
</a>
{% endif %}
{% endfor %}
</div>
{% endif %}
{% endfor %}
{% endif %}
{% endblock %}
{%block content%}
作为特色的
{%if最新业务列表%}
{最新业务列表中的业务百分比|切片::4“%}
{%if business.active%}
{最新\u business\u list.businessimage\u set.all%}
{%if image.featured%}
{%endif%}
{%endfor%}
{%endif%}
{%endfor%}
{%endif%}
{%endblock%}
businessimage\u set
是业务
实例的一个属性,但您试图将其作为查询集(即业务列表)的一个属性进行访问。如果您的目标只是能够访问模板中每个业务的图像,则可以完全忽略图像。相反,您的模板将具有:
{% for image in business.businessimage_set.all %}
(尽管查看与预取相关的以提高效率。)