【发布时间】:2021-11-09 04:51:38
【问题描述】:
这里发生了很多事情,inventory.Html 中的最后一行假设使用views.py 中产品的ID 链接到产品页面。我正在尝试使用 ID 为每个产品创建一个页面,但路径不起作用。
inventory.html 代码
{% for i in items %}
<tr>
<td>{{i.Name_of_the_Material_per_specification}}</td>
<td>{{i.Site_Material_Code }}</td>
<td><a class="btn btn-sm btn-info" href="{% url 'receipt' products.id %}">View</a></td>
</tr>
{% endfor %}
RECIEPT.HTML
<div class="col-md">
<div class="card card-body">
{% csrf_token %}
{% for i in products %}
<p>Name: {{products.Name_of_the_Material_per_specification}}</p>
{% endfor %}
</div>
</div>
URLS.PY
from django.contrib import admin
from django.urls import path, include
from inventory import views
urlpatterns = [
path('main', views.inventory, name='inventory'),
path('receipt/<str:pk>/', views.products, name="receipt")
views.py
from django.shortcuts import render, HttpResponse
from django.template import loader
from django.shortcuts import redirect
from .models import *
from .forms import *
# Create your views here.
def inventory(request):
items = materialForm.objects.all()
return render(request, 'website/inventory.html', {'items': items})
def products(request, pk):
products = materialForm.objects.get(id=pk)
context = {'products':products }
return render(request, 'website/receipt.html', context )
models.py
class materialForm(models.Model):
Name_of_the_Material_per_specification = models.CharField(max_length=100, null=True)
def __str__(self):
return self.Name_of_the_Material_per_specification
【问题讨论】:
-
您正在使用 i 进行迭代,但将 products.id 作为参数发送...再次检查
-
我可以同时迭代吗?
-
请附上你的模型