Guten Tag, Ich erhalte den folgenden Fehler:Wie kann ich dieses Problem lösen: NoReverseMatch, in Django?
Reverse for 'product_list_category' with arguments '('',)' and keyword arguments '{}' not found. 1 pattern(s) tried: ['item/(?P<category_slug>[-\\w]+)/$']
in dieser besonderen Linie:
<a href="{{ option.get_absolute_url }}">{{ option.name }}</a>
Ich bin wirklich nichts falsch mit ihm zu sehen. Dies ist, wie es in der Vorlage aussieht:
{% for option in categories %}
<li {% if category.slug == option.slug %} class="selected"{% endif %}>
<a href="{{ option.get_absolute_url }}">{{ option.name }}</a>
</li>
{% endfor %}
und in meinen Modellen:
class Category(models.Model):
""" Model for a category """
name = models.CharField(max_length=200)
slug = models.SlugField(max_length=200, unique=True)
def __str__(self):
return self.name
class Meta:
ordering = ['name',]
verbose_name = 'category'
verbose_name_plural = 'Categories'
def get_absolute_url(self):
return reverse('store:product_list_category', args=[self.slug])
und in meinen Ansichten:
def products_list(request, category_slug=None):
category = None
categories = Category.objects.all()
products = Product.objects.filter(availability=True)
template = 'store/products.html'
if category_slug:
category = get_object_or_404(Category, slug=category_slug)
products = products.filter(category=category)
context = {
'category': category,
'categories': categories,
'products': products
}
return render(request, template, context)
und meine Urls:
url(r'^$', products_list, name='products'),
url(r'^item/(?P<category_slug>[-\w]+)/$', products_list, name='product_list_category'),
Ich werde alle zu schätzen wissen Hilfe.
Sind Sie sicher, dass Ihr Objekt 'Slug' gesetzt hat? Die Exception zeigt an, dass versucht wird, die Suche umzukehren, indem die leere Zeichenfolge als einziges Argument verwendet wird. –
@PeterDeGlopper nicht sicher zu verstehen, was du gesagt hast –
@PeterDeGlopper ja es hat eine Schnecke. Meine Kategorie hat nur zwei Felder, Name und Slug –