[英]How can I solve this issue: NoReverseMatch, in django?
美好的一天,我收到以下錯誤:
Reverse for 'product_list_category' with arguments '('',)' and keyword arguments '{}' not found. 1 pattern(s) tried: ['item/(?P<category_slug>[-\\w]+)/$']
在這一行:
<a href="{{ option.get_absolute_url }}">{{ option.name }}</a>
我真的沒有發現它有什么問題。 這是它在模板中的樣子:
{% for option in categories %}
<li {% if category.slug == option.slug %} class="selected"{% endif %}>
<a href="{{ option.get_absolute_url }}">{{ option.name }}</a>
</li>
{% endfor %}
在我的模型中:
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])
在我看來:
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)
和我的網址:
url(r'^$', products_list, name='products'),
url(r'^item/(?P<category_slug>[-\w]+)/$', products_list, name='product_list_category'),
我將不勝感激任何幫助。
嘗試在 get_absolute_url 函數kwargs={'category_slug'=self.slug}
slug 作為kwargs={'category_slug'=self.slug}
傳遞。 (將其寫為評論,但我沒有足夠的代表)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.