Просмотр отдельных сведений о продукте

Я делаю CRUD продуктов и одна из моих задач - иметь страницу, которая бы отображала детали продукта при нажатии на нее.

Я просмотрел различные сайты о том, как сделать страницу подробной информации о продукте, в том числе из stackoverflow, но без успеха. Я также получаю следующую ошибку, несмотря на то, что имена функций написаны правильно enter image description here

это несмотря на то, что в urls.py ниже написано имя 'productdetails'

urlpatterns=[
    path('',views.showAdminPage,name="showadmin"),
    path('products/<int:id>/',views.productdetails, name='productdetails'),
    path('show/',views.show,name="show"),
    path('insert/',views.insert,name="insert"),
    path('update/<int:id>/',views.update,name="update"),
    path('delete/<int:id>/',views.delete,name="delete"),
    path('shoppingpage/',views.shoppingpage,name="shoppingpage"),
    path('allproducts/',views.allproducts,name="allproducts"),
    path('9-6wear/',views.ninesixwear,name="ninesixwear"),
    path('kurta/',views.kurta,name="kurta"),
    path('skirtset/',views.skirtset,name="skirtset"),
    path('dress/',views.dress,name="dress"),
    path('kurtaset/',views.kurtaset,name="kurtaset"),
    path('desiswag/',views.desiswag,name="desiswag"),
    path('sharara/',views.sharara,name="sharara"),
    path('plazzo/',views.plazzo,name="plazzo"),
    path('dhoti/',views.dhoti,name="dhoti"),
    path('anarkali/',views.anarkali,name="anarkali"),
    path('fusionwear/',views.fusionwear,name="fusionwear"),
    path('drapesaree/',views.drapesaree,name="drapesaree"),
    path('jumpsuits/',views.jumpsuits,name="jumpsuits"),
    path('croptopwithskirt/',views.croptopwithskirt,name="croptopwithskirt"),
    path('indowestern/',views.indowestern,name="indowestern"),
    path('lehenga/',views.lehenga,name="lehenga"),
    path('heavysuitset/',views.heavysuitset,name="heavysuitset"),
    path('gown/',views.gown,name="gown"),
    path('bridalwear/',views.bridalwear,name="bridalwear"),
]

функцияproductdetails в views.py

def productdetails(request,id):
    product = Products.objects.get(id=id);
    context = {'data':product}
    return render(request,'polls/productdetails.html')

модель

class Products(models.Model):
    categories = models.ForeignKey(Categories,on_delete=models.CASCADE)
    sub_categories = models.ForeignKey(SUBCategories,on_delete=models.CASCADE)
    color = models.ForeignKey(Colors,on_delete=models.CASCADE)
    size = models.ForeignKey(Size,on_delete=models.CASCADE)
    image = models.ImageField(upload_to = 'media/',width_field=None,height_field=None,null=True)
    title = models.CharField(max_length=70)
    price = models.CharField(max_length=10)
    sku_number = models.CharField(max_length=10)
    product_details = models.CharField(max_length=1000)
    quantity = models.IntegerField(default=0)
    isactive = models.BooleanField(default=True)

ниже представлена страница productdetails.html

<table> 
 {% for result in data %}
 <tbody>
    <tr>
        <td>{{result.id}}</td>
        <td>{{result.title}}</td>
        <td>{{result.price}}</td>
        <td>{{result.sku_number}}</td>
        <td>{{result.product_details}}</td>
        <td>{{result.size}}</td>
        <td>{{result.quantity}}</td>
       </tr>
    </tbody>
  </table>

kurta.html, где возникает вышеуказанная ошибка

<ul class="row products columns-3" id="appendproducts">
          {% for result in data %}
          <li class="product-item wow fadeInUp product-item rows-space-30 col-bg-4 col-xl-4 col-lg-6 col-md-6 col-sm-6 col-ts-6 style-01 post-24 product type-product status-publish has-post-thumbnail product_cat-chair product_cat-table product_cat-new-arrivals product_tag-light product_tag-hat product_tag-sock first instock featured shipping-taxable purchasable product-type-variable has-default-attributes" data-wow-duration="1s" data-wow-delay="0ms" data-wow="fadeInUp">
                  <div class="product-inner tooltip-left">
                      <div class="product-thumb">
                          <a href="{% url 'productdetails' result.id %}" class="thumb-link">
                              {% if result.sub_categories == 'Kurta' %}
                                  <img class="img-responsive" src="{{result.image}}" alt="MINI SKIRT" width="300" height="300">
                              {% endif %}
                          </a>
                      </div>
                      <div class="product-info equal-elem">
                          <h3 class="product-name product_title">
                              {% if result.sub_categories == 'Kurta' %}
                                  <a href="{% url 'productdetails' result.id %}">{{result.title}}</a>
                              {% endif %}
                          </h3>
                          <span class="price">
                              <span class="lynessa-Price-amount amount">
                                  <ins>
                                      {% if result.sub_categories == 'Kurta' %}
                                          <span class="lynessa-Price-currencySymbol">₹</span>
                                          <span class="lynessa-Price-amount amount discount-amount InrToUsdDiscountPrice65">
                                              {{result.price}} 
                                          </span>
                                      {% endif %}
                                  </ins>
                              </span>
                          </span>
                      </div>
                  </div>
                      
          </li>
          {% endfor %}
      </ul>

может ли кто-нибудь указать, где я ошибаюсь? Спасибо!

Может быть:

  • views.py
def productdetails(request,id):
    product = Products.objects.get(id=id)
    fields = product._meta.fields
    context = {
        'data': [
            {'prop': f.name, 'label': f.verbose_name, 'value': getattr(product, f.name)}
            for f in fields
        ]
    }
    return render(request,'polls/productdetails.html')
  • productdetails.html
<table>
 <thead>
 <tr>
 {% for item in data %}
   <th>{{ item.label }}</th>
 {% endfor %}
 </tr>
 </thead>
 <tbody>    
   <tr>
   {% for item in data %}
   <td>{{ item.value }}</td>
   {% endfor %}
   </tr>
 </tbody>
</table>
Вернуться на верх