如何在Django 2.0中访问下一页

时间:2018-08-09 08:17:39

标签: django models

我有以下风景。在第一页中,有产品类型,当选择特定类型时,它将发送到特定类型产品的页面,然后,当我选择产品时,应将我发送到具有产品完整信息的产品页面。但是我无法访问上一个产品页面。我该如何解决?我的代码:

views.py:

def products_fizlitso(request):

 fizlitso_product = InsuranceProducts.objects.filter(product_type="Физическое 
 Лицо")

 context = {'fizlitso_product': fizlitso_product}
 return render(request, 'insurance_products/fizlitso/fizlitso.html', context)


def fizlitso_type(request, type_id):

 product_type = get_object_or_404(InsuranceProducts, id=type_id)

 context = {'product_type': product_type}
 return render(request, 'insurance_products/fizlitso/fizlitso_type.html', 
 context)

def product_page(request, product_id):

 product = get_object_or_404(ProductType, id=product_id)

 context = {'product': product}
 return render(request, 'insurance_products/fizlitso/product.html', context)

这是urls.py:

# ******************************************************************
path('fizlitso/', views.products_fizlitso, name='product_fizlitso'),
# ******************************************************************

# ******************************************************************
path('fizlitso/product_type<int:type_id>', views.fizlitso_type, name='fizlitso_type'),
# ******************************************************************

# ******************************************************************
path('fizlitso/product_type<int:type_id>/product<int:product_id>', views.product_page, name='product_page'),
# ******************************************************************

这是模板的django部分,其中包含所有产品类型:

  {% for product in fizlitso_product %}
  <div class="btmspace-80">
    <h3>{{ product.product_area }}</h3>
    <img class="imgr borderedbox inspace-5" src="{% static 'img/imgr.gif' %}" alt="">
    <p>
        {{ product.product_description }}
    </p>

    <p>
        Подробно вы можете узнать <a href="{% url 'main:fizlitso_type' product.id %}">здесь</a></a>
    </p>
  </div>
  {% endfor %}

这里是模板的django部分,其中包含特定类型的所有产品:

  {% for product in product_type.producttype_set.all %}
  <div class="btmspace-80">
    <h3>{{ product.title }}</h3>
    <img class="imgr borderedbox inspace-5" src="{% static 'img/imgr.gif' %}" alt="">
    <p>
        {{ product.description }}
    </p>

    line 84  <p>
      Подробно вы можете узнать <a href="{% url 'main:product_page' product.id %}">здесь</a></a>
    </p>
  </div>
  {% endfor %}

这是有关从上一页中选择的特定产品的页面:

    <div class="btmspace-80">
    <h3>{{ product.title }}</h3>
    <img class="imgr borderedbox inspace-5" src="{% static 'img/imgr.gif' %}" alt="">
    <p>
        {{ product.description }}
    </p>
  </div>

这是错误:

  

/ fizlitso / product_type1处的NoReverseMatch

     

找不到带有参数'('',)'的'product_page'的反向。 1个   尝试的模式:   ['fizlitso \ / product_type(?P [0-9] +)\ / product(?P [0-9] +)$']

     

C:\ Users \ Lenovo   101 \ PycharmProjects \ uzagro_3 \ main \ templates \ insurance_products \ fizlitso \ fizlitso_type.html,   第84行出现错误

1 个答案:

答案 0 :(得分:0)

您的网址名称product_page有两个参数:type_id,product_id

path('fizlitso/product_type<int:type_id>/product<int:product_id>', views.product_page, name='product_page')

你给一个?

<a href="{% url 'main:product_page' product.id %}">