我正在尝试创建一个页面,在其中可以使用Django模型中的循环显示数据模型中产品的详细信息,但是当我进入项目列表时,除图像之外的其他详细信息都可以使用,在图像部分中,它显示了alt文本。请帮助我。
我的模特:
class Category(models.Model):
name = models.CharField(max_length=50)
def __str__(self):
return self.name
class Item(models.Model):
name = models.CharField(max_length=150)
category = models.ForeignKey(Category, on_delete=models.CASCADE)
is_active = models.BooleanField(default=True)
model_pic = models.ImageField(upload_to = 'static/media/')
def __str__(self):
return self.name
我的观点:
def item_list(request, category_id):
category_name = Category.objects.get(pk=category_id)
list_items = Item.objects.filter(category=category_name)
context = {
'list_items': list_items,
}
return render(request, 'inventory/item_list.html', context)
我的庙宇:
{% for item in list_items %}
<tr>
<td>{{ forloop.counter }}</td>
<td>{{ item.name }}</td>
<td>{{ item.category }}</td>
<td>{{ item.is_active }}</td>
<td><a href="{% url 'item_delete' item.pk %}">Delete</a></td>
<td><img src="{{ item.model_pic.url }}" alt="Photo"></td>
</tr>
{% endfor %}
答案 0 :(得分:0)
如果在开发过程中发生了这种情况,请确保将您的应用程序配置为可以提供媒体服务。更新您的网址配置。例如:
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
# ... the rest of your URLconf goes here ...
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
有关更多信息,请参见:
如果已配置,请检查文件的源以查看正在显示的内容。正在显示“照片”,因为网络浏览器无法找到图像。
答案 1 :(得分:0)
def item_list(request, category_id):
category_name = Category.objects.get(pk=category_id)
list_items = Item.objects.filter(category=category_name)
context = {
'list_items': list_items,
}
return render(request, 'inventory/item_list.html', context)
在这里上下文字典将被附加到相应的URL item_list.html
在设置中,一旦完成,您必须去除静态参数; 在item_list.html中。您必须使用{%static%} 然后遍历上下文元素。 在
<img src="{% static variable %}" %}>