dzhem911
@dzhem911
I know H.T.M.L. ;)

Как вернуть url из модели в шаблон?

Всем привет! Застрял, нужна ваша помощь.
Не получается вернуть ссылки из модели в шаблон. Используя обычные функции, все получалось. Сейчас задача прокинуть через generic.ListView - никак не получается. Ошибка следующая:
NoReverseMatch at /
Reverse for 'product_list' with arguments '('saws',)' not found. 1 pattern(s) tried: ['$']

Получается что возвращается элемент кортежа?

#models
class Category(models.Model):
    name = models.CharField(verbose_name='Категория', max_length=100, db_index=True)
    slug = models.SlugField(max_length=100, db_index=True,
                            unique=True)
...
    def get_absolute_url(self):
        return reverse('core:product_list',
                       args=[self.slug])


#urls
app_name = 'core'

urlpatterns = [
    path('', views.ProductView.as_view(), name='product_list'),]

views.py
class ProductView(generic.ListView):
    queryset = Product.objects.filter(available=True)
    categories = Category.objects.all()


    def get_context_data(self, **kwargs):
        context = super(ProductView, self).get_context_data(**kwargs)
        ...
        context['categories'] = self.categories
        return context

#html. inside block
{% for c in categories %}
    <a href="{{ c.get_absolute_url }}">{{ c.name }}</a>
{% endfor %}
  • Вопрос задан
  • 125 просмотров
Решения вопроса 1
WStanley
@WStanley
Back-end Developer
Ты передаешь slug в product_list, но делаешь это без уважения и не принимаешь его
ссылка на доку
ссылка на доку 2 (пример)
path('  тут принять slug  ', views.ProductView.as_view(), name='product_list'),]
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы