python - 如何使模板中的python只输入一次if条件
问题描述
我有一些产品和一些不同型号的图片。在显示所有产品时,我需要在表格中显示 1 张图片。我试过这个:
模板 :
{% for instance in instances %}
<tr class="check_items_row">
<td style="width:20px;">
<div class="checkbox lgi-checkbox m-t-5">
<label>
<input class="check check_item" type="checkbox" value="{{instance.pk}}" name="delete_item">
<i class="input-helper"></i>
</label>
</div>
</td>
<td><a href="{% url 'products:product' pk=instance.pk %}">{{instance.auto_id}}</a></td>
<td>{{instance.category}}</td>
<td>{{instance.subcategory}}</td>
<td>{{instance.name}}</td>
{% for item in product_gallery %}
{% if item.product == instance and test == 0 %}
<td><img src="{{item.image.url}}" alt="Image" style="width:100px;"/></td>
{% endif %}
{% endfor %}
</tr>
{% endfor %}
视图.py
def products(request):
instances = Product.objects.filter(is_deleted=False).order_by('auto_id')
product_gallery = ProductGallery.objects.all()
context = {
'title': "Product ",
'instances' : instances,
"product_gallery": product_gallery,
"test": 0,
}
return render(request,'products/products.html',context)
在我的想法中,我只需要更改模板中 test 的值,如果它进入if 条件一次。
此代码显示产品的所有图像。 我只需要每个产品的一张图片。
在这里,我需要更改条件内的值并在循环if
后重置为 0for
楷模:
class Product(BaseModel):
category = models.ForeignKey('products.ProductCategory',on_delete=models.CASCADE)
subcategory = models.ForeignKey('products.ProductSubCategory',on_delete=models.CASCADE)
name = models.CharField(max_length=255)
class Meta:
db_table = 'products_product'
verbose_name = _('product')
verbose_name_plural = _('products')
ordering = ('name',)
def __str__(self):
return self.name
class ProductGallery(models.Model):
product = models.ForeignKey('products.Product',on_delete=models.CASCADE)
image = models.FileField(upload_to='products/product_gallery/')
class Meta:
db_table = 'products_product_gallery'
verbose_name = _('product_gallery')
verbose_name_plural = _('product_gallerys')
def __unicode__(self):
return(self.product)
解决方案
def get_image_url(self):
img = self.productgallery_set.first()
if img:
return img.image.url
return img #None
在您的产品模型下添加它并在您的模板中调用 get_image_url
推荐阅读
- node.js - node.js 中 https.get 的重试逻辑
- reactjs - 重构为 React 钩子时的身份验证侦听器
- python - 如何在不重新启动笔记本的情况下清除 jupyter 内存
- unity3d - Unity - 使用 GetRawTextureData 更改底层 RGB 字节而不复制
- angular - 具有相同名称/字段的角材料多个 mat-radio-group
- python - 驱动程序查找元素
- javascript - 要在对象推送中的 JSON 数组对象
- javascript - 从货币代码获取货币符号的 API 或 angularjs 服务
- spring-data-jpa - @DomainEvent 即使在回滚的情况下也会发布事件
- matlab - 如何使用 Matlab 知道 Simulink 名称块是否已存在