2016-12-05 2 views
0

Ich habe alle Fragen und Antworten zu Stackoverflow ausprobiert und lese und schreibe und schreibe meine Vorlage um, aber ich bekomme weiter Der Fehler "Reverse für 'product_list_by_category' mit Argumenten '(' books ',') und Schlüsselwortargumenten '{}' wurde nicht gefunden. 1 Muster versucht (en): ['shop/(? P [- \ W] +)/$ ']“Reverse für 'product_list_by_category' mit Argumenten '(' books ',)' und Schlüsselwortargumenten '{}' nicht gefunden

Die vollständige Spur ist hier:

NoReverseMatch bei/shop/ für Reverse 'product_list_by_category' mit Argumenten '(' Bücher,)' und Keyword-Argumente '{}' nicht gefunden. 1 Muster (n) versucht: [ 'Shop/-/$ (P [\ W] +?)'] anfordern Methode: GET Anforderungs-URL: http://localhost:3025/shop/ Django Version: 1.9.7 Ausnahmetyp: NoReverseMatch Ausnahmewert :

Reverse for 'product_list_by_category' with arguments '('books',)' and keyword arguments '{}' not found. 1 pattern(s) tried: ['shop/(?P<category_slug>[-\\W]+)/$'] 
Exception Location: /home/namalliv/public_html/lib/python/Django-1.9.7-py3.4.egg/django/core/urlresolvers.py in _reverse_with_prefix, line 508 
Python Executable: /usr/local/bin/python3.4 
Python Version: 3.4.4 
Python Path:  
['/home/namalliv/public_html/villaproject', 
'/usr/local/lib/python3.4/site-packages/python_magic-0.4.11-py3.4.egg', 
'/home/namalliv/public_html/lib/python', 
'/home/namalliv/public_html/lib/python/Django-1.9.7-py3.4.egg', 
'/usr/local/lib/python34.zip', 
'/usr/local/lib/python3.4', 
'/usr/local/lib/python3.4/plat-linux', 
'/usr/local/lib/python3.4/lib-dynload', 
'/usr/local/lib/python3.4/site-packages'] 
Server time: Mon, 5 Dec 2016 01:22:25 +0000 
Error during template rendering 

In template /home/namalliv/public_html/villaproject/templates/shop/list.html, error at line 22 
Reverse for 'product_list_by_category' with arguments '('books',)' and keyword arguments '{}' not found. 1 pattern(s) tried: ['shop/(?P<category_slug>[-\\W]+)/$'] 
12 
13 {% block content %} 
14  <div id="sidebar"> 
15   <h3>Catergories</h3> 
16   <ul> 
17    <li {% if not category %} class="selected" {% endif %}> 
18     <a href="{% url 'shop:product_list' %}">All</a> 
19    </li> 
20    {% for c in categories %} 
21     <li {% if category.slug == c.slug %} class="selected" {% endif %}> 
22      <a href="{{ c.get_absolute_url }}">{{ c.name }}</a> 
23     </li> 
24    {% endfor %} 
25   </ul> 
26  </div> 
27  <dir id="main" class="product_list"> 
28   <h1>{% if category %} 
29     {{ category.name }} {% else %}Products 
30    {% endif %} 
31   </h1> 
32   {% for product in products %} 

Hier ist meine model.py

class Category(models.Model): 
    name = models.CharField(max_length=200, 
    db_index=True) 
    slug = models.SlugField(max_length=200, 
    db_index=True, unique=True) 

    class Meta: 
     ordering=('name',) 
     verbose_name = 'caterory' 
     verbose_name_plural = 'categories' 

    def __str__(self): 
     return self.name 

    def get_absolute_url(self): 
     return reverse('shop:product_list_by_category', kwargs={'slug': self.slug}) 

Ansicht:

def product_list(request, category_slug=None): 
    category = None; 
    categories = Category.objects.all() 
    products = Product.objects.filter(available=True) 
    if category_slug: 
     category = get_object_or_404(Category, slug=category_slug) 
     products = products.filter(category=category) 
    return render(request, 'shop/list.html', {'category': category, 'categories': categories, 'products': products}) 

Hier ist meine urls.py ist

url(r'^(?P<category_slug>[-\W]+)/$', views.product_list, name='product_list_by_category'), 

mein Haupt urls.py ist

url(r'^shop/', include('shop.urls', namespace='shop')), 

Und das ist meine Vorlage:

{% block content %} 
    <div id="sidebar"> 
     <h3>Catergories</h3> 
     <ul> 
      <li {% if not category %} class="selected" {% endif %}> 
       <a href="{% url 'shop:product_list' %}">All</a> 
      </li> 
      {% for c in categories %} 
       <li {% if category.slug == c.slug %} class="selected" {% endif %}> 
        <a href="{{ c.get_absolute_url }}">{{ c.name }}</a> 
       </li> 
      {% endfor %} 
     </ul> 
    </div> 
{% endblock content %} 
+0

Bitte senden Sie die Fehlermeldung _with voll traceback_ und auch Ihre Haupt 'urls.py'. – Selcuk

+0

url (r '^ shop /', include ('shop.urls', namespace = 'shop')), Dies ist mein Haupt urls.py –

+0

Dort ist es Selcuk –

Antwort

1

Ihre URL-Muster verwendet \W (Groß W), was zu allem passt außer alphanumerische Zeichen. Sie müssen es ändern zu klein geschrieben, so dass es alphanumerische Zeichen entspricht:

url(r'^(?P<category_slug>[-\w]+)/$', views.product_list, name='product_list_by_category'), 
+0

Dies ist die Antwort Mann. Danke vielmals. –

Verwandte Themen