2017-02-08 1 views
0

Я использую python 2.7.11 и django 1.10.2. Я создал URL-адреса и использовал динамические шаблоны.Как использовать динамические URL-адреса для шаблонов

urls.py

url(r'^suits-anarkali/', include([ 
       url(r'^$', category_page, name="suits-anarkali"), 
       url(r'^(?P<slug>[\w-]+)/$', category_page, name="suits-anarkali"), 
       url(r'^(?P<slug>[\w-]+)/$', single_product, name='singleproduct'), 
       url(r'^(?P<slug>[\w-]+)/(?P<singleproduct_slug>[\w-]+)/$', singleproduct, name="singleproduct"), 
    ]) 
), 

это мой URL структуры. Если я вызываю category_page с slug, тогда он работает нормально, но когда я вызываю single_product с slug, он перенаправляется на страницу категории. Я пробовал много времени, но он не работает. Итак, как управлять URL-адресами в шаблоне?

product.html

{% if slug %} 
    <a href="{% url 'singleproduct' slug detail.slug %}">{{ detail.product_name }}</a> 
{% else %} 
    <a href="{% url 'singleproduct' detail.slug %}">{{ detail.product_name }}</a> 
{% endif %} 
+0

Пожалуйста, проверьте нашу орфографию, прежде чем спрашивать. Я исправил два опечатка. – guettli

ответ

0

URLs работать на первом матче регулярного выражения основе, так как линии ниже матча точно такой же параметр слизняк, при вызове URL с слизняк, это category_page что сначала совпадает, поэтому django не проводит проверку следующей строки. Вы должны внести некоторые изменения в category_page, чтобы сделать его отличным от другого регулярного выражения.

url(r'^(?P<slug>[\w-]+)/(?P<product>[\w-]+)/$', single_product, name='singleproduct'), 
    url(r'^(?P<slug>[\w-]+)/$', category_page, name="suits-anarkali"), 

read more on url tag

+0

да обе линии ниже соответствуют точному же параметру slug. но имя и вид diff. поэтому его можно работать надлежащим образом. если возможно, то что изменит мой код. –

+0

Да, я просто хотел обратить ваше внимание на проблему. Это зависит от вас, чтобы изменить один из них, чтобы избежать нежелательного соответствия шаблонов. – supermario

+0

@ zumba yes sir, но мне нужно оба URL-адреса, потому что категория категорий category_page показывает категорию и список подкатегорий product_list. И детали продукта категории просмотра single_product, а также сведения о деталях продукта подкатегории singleproduct. –

Смежные вопросы