Реверсивный URL с двумя слизнями - PullRequest
0 голосов
/ 16 октября 2018

Я пытаюсь понять базовый пример добавления как категорий, так и подробных слагов из 2 связанных классов.

URL-адрес /categories работает, но я не могу заставить /categories/detail работать.Я получаю следующую ошибку:

Reverse for 'categorydetail' with arguments '('onedetailfromcategory',)' not found. 1 pattern(s) tried: ['(?P<cat_slug>[^/]+)/(?P<det_slug>[^/]+)$']

Вот мои файлы:

#Models:

class Categories(models.Model):
    name = models.CharField(max_length=50,unique=True)
    cat_slug = models.SlugField(max_length=100,unique=True)

    def __str__(self):
        return self.name

class Details(models.Model):
    title = models.CharField(max_length=100)
    det_slug= models.SlugField(max_length=100,unique=True)

    categorie = models.ForeignKey('Categories', on_delete=models.CASCADE,  related_name="Categories")


    def __str__(self):
        return self.title


#Views:         
class ListCategorie(DetailView):
    model = Categories
    slug_field = 'cat_slug'
    context_object_name = "listcategories"
    template_name = "show/categories.html"

class DetailCategorie(DetailView):
    model = Details
    slug_field = 'det_slug'
    context_object_name = "categorydetail"
    template_name = "show/detail.html"

#Urls:
    path('<cat_slug>', views.ListCategorie.as_view(), name='listcategories'),
    path('<cat_slug>/<det_slug>', views.DetailCategorie.as_view(), name='categorydetail'),

#Categories.html

{% for x in listcategories.Categories.all %}
<p> {{x.title}} </p>
<li><a href="{% url 'categorydetail' x.det_slug %}">URL</a></li>
{% endfor %}

1 Ответ

0 голосов
/ 16 октября 2018

Ваш шаблон URL-адреса

path('<cat_slug>/<det_slug>', views.DetailCategorie.as_view(), name='categorydetail'),

Поэтому вам необходимо указать cat_slug и det_slug при обращении URL-адреса:

{% url 'categorydetail' x.categorie.cat_slug x.det_slug %}
...