Задать вопрос
@blazer05

Не могу вывести категории в шаблон?

Здравствуйте.
Совсем запутался в трех соснах - помогите разобраться. Не могу вывести в шаблон категории с параметром slug. Браузер выдает ошибку страница не найдена 404. Но если делать без slug а просто выборку из базы всех записей категорий - то все работает!
модель
class Category(models.Model):
    class Meta():
        db_table = 'category'
    name = models.CharField(max_length=150, unique=True, verbose_name='Категория')
    slug = models.SlugField(verbose_name='Транслит', null=True)
    def __unicode__(self):
        return self.name

views.py
def category(reguest, slug):
    cat = Category.objects.get(slug=slug)
    return render_to_response('category.html', {'cat': cat})

urls.py
url(r'^category/(?P<slug>\d+)/$', views.category, name='category'),

Если переписываю без slug то работает.
views.py
def category(reguest):
    cat = Category.objects.all()
    return render_to_response('category.html', {'cat': cat})

urls.py
url(r'^category/$', views.category, name='category'),

Заметил, что пишет Raised by: blog.views.full_slug получается, что джанго не видит нужный урл и берет следующий который за ним стоит. Я пробовал выше и ниже ставить урл но ничего!
Что делаю не так?
2f56421e5bed4deaaf3518aaef0a3675.jpg
  • Вопрос задан
  • 621 просмотр
Подписаться 1 Оценить 4 комментария
Пригласить эксперта
Ответы на вопрос 2
(?P<slug>\d+)

\d - это только цифры

Для слага надо что-то вроде:

(?P<slug>[-\w]+)
Ответ написан
bogdanov-s
@bogdanov-s
Че-то там программирую
У меня сделано так
url(r'^post/(?P<id>\d+)/$',views.get_post, name='get_post'),
url(r'^(?P<slug>[-\w\d]+)/(?:(?P<page>\d+)/)?$',views.get_section, name='get_secttion'),

Очередность важна, также в settings.py добавьте APPEND_SLASH = True
Я не уверен, но мне кажется, что проблема в єтом.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы