По дефолту урлы записи имеют вид /2012/02/23/test/. Мне нужен вид /cat/subcat/test/. urls:


url(r'^testing/', include('zinnia_customized.urls')),


zinnia_customized.urls:


"""Urls for the Zinnia entries""" from django.conf.urls.defaults import url from django.conf.urls.defaults import patterns

from zinnia.models import Entry from zinnia.settings import ALLOW_FUTURE

entry_conf = {'category_field': 'categories', 'allow_future': ALLOW_FUTURE, 'queryset': Entry.published.on_site()}

urlpatterns = patterns( 'zinnia_customized.views.entry_detail', url(r'^(?P<cat>[-w/]+)/(?P<slug>[-w]+)/$', entry_conf, name='zinnia_entry_detail'), )


zinnia_customized.views.entry_detail:


"""Views for Zinnia entries""" from django.views.generic.date_based import object_detail

from zinnia.views.decorators import protect_entry

entry_detail = protect_entry(object_detail)


В итоге выдает TypeError at /test/cat/subcat/test/ cannot concatenate 'str' and 'dict' objects. 10 часов убил на это :(

задан 21 Фев '12, 16:17

fixer's gravatar image

fixer
56712
Одобрено: 50%

изменено 23 Фев '12, 20:11

Нужен список шаблонных тегов, банально не смог даже вывести title страницы

Исходя из этой фразы, я бы вам для начала порекомендовал ознакомиться как работают шаблонны в Джанге. Так как title страницы - это не шаблонный тег - это поле модели, которое можно вывести в шаблоне.

генерик вьюхи, которые скоро должны исключить - никто не заставляет вас переходить сразу на новую версию, но опять же - думаю автор тоже в курсе об этом и когда надо будет то переведет все.

остальные ваши вопросы возможно решить только при знании при знании питона и фреймворка.

(21 Фев '12, 22:39) Berg ♦♦ Berg's gravatar image

Просто устанавливал zinnia и не клал в папку проекта -> не мог видеть модели. В связи с этим остается только вопрос, как исправить урл.

(23 Фев '12, 20:04) fixer fixer's gravatar image

ну надо изменить регулярное выражение для урл + подправить вьюху для этого запроса

(24 Фев '12, 02:42) Berg ♦♦ Berg's gravatar image

Ну так изменил, не работает. Даже не знаю в чем дело

(24 Фев '12, 12:03) fixer fixer's gravatar image

можете показать какие строки вы меняли ? и на что ?

(24 Фев '12, 17:55) Berg ♦♦ Berg's gravatar image

дефолтная схема урл: entry_conf = {'date_field': 'creation_date', 'allow_future': ALLOW_FUTURE, 'queryset': Entry.published.on_site(), 'month_format': '%m'}

urlpatterns = patterns( 'zinnia.views.entries', url(r'^(?P<year>d{4})/(?P<month>d{2})/(?P<day>d{2})/(?P<slug>[-w]+)/$', 'entry_detail', entry_conf, name='zinnia_entry_detail'), ) вьюха без изменений

(24 Фев '12, 18:57) fixer fixer's gravatar image

а в модели EntryAbstractClass метод get_absolute_url так написан ? с параметром slug ?

@models.permalink
def get_absolute_url(self):
    """Return entry's URL"""
    return ('zinnia_entry_detail', (), {
        'year': self.creation_date.strftime('%Y'),
        'month': self.creation_date.strftime('%m'),
        'day': self.creation_date.strftime('%d'),
        'slug': self.slug})
(24 Фев '12, 19:39) Berg ♦♦ Berg's gravatar image

Да. На сколько понимаю эта функция только выводит линк на запись в админке.

(24 Фев '12, 19:51) fixer fixer's gravatar image

Да - но ею так же можно пользоваться и в шаблонах :)

(25 Фев '12, 02:17) Berg ♦♦ Berg's gravatar image

Есть единственная запись. get_absolute_url выглядит так

@models.permalink
def get_absolute_url(self):
    return ('zinnia_entry_detail', (), {
        'year': self.creation_date.strftime('%Y'),
        'month': self.creation_date.strftime('%m'),
        'day': self.creation_date.strftime('%d')})


Схему урл исправляю до

urlpatterns = patterns(
    'zinnia.views.entries',
    url(r'^(?P<year>\d{4})/(?P<month>\d{2})/(?P<day>\d{2})/$',
        'entry_detail', entry_conf,
        name='zinnia_entry_detail'),
    )

/2012/02/23/ выдает KeyError at /2012/02/23/ 'slug'

(25 Фев '12, 17:55) fixer fixer's gravatar image

Ну логично же - если будет 2 записи в 1 день - как их распознать и отличить что запрашивается? у вас должен быть полюбом мой вариант пермалинка

(25 Фев '12, 18:34) Berg ♦♦ Berg's gravatar image

Ну так запись в данном случае одна. В первом посте я ясно обозначил, какой должен быть урл. Тут запись с этими параметрами есть (одна). Почему она не выводится, мне не понятно.

(27 Фев '12, 12:28) fixer fixer's gravatar image

ну я не знаю при моем коде для get_absolute_url у меня вот такое работает:

url(r'^(?P<year>\d{4})/(?P<month>\d{2})/(?P<day>\d{2})/(?P<slug>[-\w]+)/$',
    'entry_detail', entry_conf_detail,
    name='zinnia_entry_detail'),
(27 Фев '12, 14:06) Berg ♦♦ Berg's gravatar image

Ну так это дефолтная схема

(27 Фев '12, 17:16) fixer fixer's gravatar image

Сори не обратил внимание на вашу задачу - что-то я запутался и щас перечитал внимательно еще раз... - так под ваши условия нужно лучше сделать отдельные вьюху и урл, а не трогать стандартные, так как изменения больше надо сделать во вьюхе.

(28 Фев '12, 23:13) Berg ♦♦ Berg's gravatar image

Сделал вьюху, но выводит она пост вне зависимости от категории. Настоящий урл записи /cat/subcat/test/ , но она доступна и по другим адресам (/ergera/test/). Код http://pastebin.com/wMiKnx4F Не могу заставить работать с категориями. Как жеж не люблю эти генерик вьюхи

(29 Фев '12, 11:39) fixer fixer's gravatar image

Во всем этом есть 1 загвоздка ... категорию мы можем идентифицировать только по слагу ... она у нас может быть как 1, так и второго или третьего уровня - поэтому трудно будет вычислять точную категорию. Именно поэтому разработчик подошел универсально и не заморачился.

(29 Фев '12, 12:58) Berg ♦♦ Berg's gravatar image

Ясно. Мне очень важно сохранить урлы при переходе с вордпресс. Помогайте :)

(29 Фев '12, 17:33) fixer fixer's gravatar image
показать 5 из 18 show 13 more comments
Будете первым кто ответит на этот вопрос!
включить просмотр

Следить за вопросом

По Email:

После авторизации вы сможете подписаться на любые обновления здесь

По RSS:

Ответы

Ответы и комментарии

Основы Markdown

  • *italic* or _italic_
  • **bold** or __bold__
  • ссылка:[текст](http://url.com/ "заголовок")
  • изображение?![alt текст](/path/img.jpg "заголовок")
  • нумерованый список: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • основные теги HTML, также поддерживаются

Теги вопроса:

×19
×3

заданые вопросы: 21 Фев '12, 16:17

просмотренные вопросы: 2,846 times

последние обновления: 29 Фев '12, 17:33