【发布时间】:2019-12-17 20:57:13
【问题描述】:
我正在尝试链接到 Django 管理中的页面;我正在使用 slugField 这样做。我在包含命名空间的主“urls.py”文件中创建了一个基本 URL。然后我在urls.py 文件中声明了我的产品网址,该文件指向我的模板和视图。
index.html
{% for item in products %}
<div class="col-sm-12 col-md-4 col-lg-4">
<div class="box">
{% if item.image_one %}
<div class="image">
<img src="{{ item.image_one.url }}" alt="{{ item.name }}">
</div>
{% endif %}
<div class="content">
<h4>{{ item.name }}</h4>
<a href="{% url 'products:product' item.slug %}" class="button">View Product</a>
</div>
</div>
</div>
{% endfor %}
urls.py
>urlpatterns = [
url(r'^$', views.index, name='index'),
url(r'^(?P<product>[-\w]+)/$', views.product, name='product'),]
views.py
>def product(request, product):
product = get_object_or_404(Product, slug=product)
return render(request, 'products/product.html',{
'product':product,
})
def index(request):
products = Product.objects.all()
return render(request, 'products/index.html',{
'products': products,
})
在 index.html 页面上呈现 HTML:
<section id="products">
<div class="container">
<div class="row">
<div class="col-sm-12 col-md-4 col-lg-4">
<div class="box">
<div class="image">
<img src="/media/temp-image.png" alt="product name">
</div>
<div class="content">
<h4>product name</h4>
<a href="/products/product-name/" class="button">View Product</a>
</div>
</div>
</div>
<div class="col-sm-12 col-md-4 col-lg-4">
<div class="box">
<div class="image">
<img src="/media/temp-image_uQcyyVv.png" alt="Another product">
</div>
<div class="content">
<h4>Another product</h4>
<a href="/products/another-product/" class="button">View Product</a>
</div>
</div>
</div>
</div>
</div>
</section>
【问题讨论】:
-
您的其中一款产品似乎缺少一个蛞蝓。请发布 a) 您的
index视图和 b) 检查元素并在索引页面上发布呈现的 html。 -
@BrianDant 请查看编辑
-
我编辑了你的帖子。你能重新阅读它以确保我们在同一页上吗?我注意到您帖子标题中的正则表达式与您的
urls.py中的不匹配。[-\\w]}与[-\w]。无论如何,如果您试图拦截通常会发送给管理员的请求,正如我在顶部附近的编辑中所写,我们应该考虑更改它。有更好的方法来做到这一点。 -
是的,我们在同一页面上。我注意到 URL 模式的不同,但即使我改变了这个,也没有任何改变。
-
我几乎尝试了所有方法,所以欢迎您提出任何建议