Обман обмана - PullRequest
       20

Обман обмана

3 голосов
/ 20 марта 2011

Я разрабатываю сайт plone4, на котором у каждого пользователя есть сортируемый инвентарь предметов.Представление folder_content ATFolder идеально подходит для этого.Единственная проблема заключается в том, что вместо URL-адреса, подобного следующему:

/site/user/inventory

или

/site/inventory/user

, URL должен быть:

/site/inventory

Я думалв нескольких решениях, но у каждого есть свои сомнения.

  • Сделать содержимое инвентаря динамичным, в зависимости от аутентифицированного пользователя.Я даже не знаю, возможно ли это на plone.
  • Каким-то образом обмануть трансверсальный механизм, поэтому / site / инвентарь render /site/inventory/user.
  • Измените контекст перед отображениемвид.Опять же, не знаю, если это возможно.
  • Сделайте инвентарь подклассом ATCTContent, сохраните данные инвентаризации как примечания для пользователя и разработайте код заказа самостоятельно.Это вариант, которого я пытаюсь избежать.

Что бы вы сделали?

Спасибо.

Ответы [ 2 ]

8 голосов
/ 20 марта 2011

Что ж, будет легко определить представление inventory, которое затем использует аутентифицированного пользователя для рендеринга его содержимого, что может быть простым делегированием в упорядоченную папку, которая хранится в / site / users / user / folder. .

Единственное, что вы должны помнить, это то, что аутентификация пользователя происходит после обхода. Это означает, что когда создается экземпляр представления (вызывается его метод __init__), пользователь еще не определен, потому что это происходит во время обхода. Найдите своего пользователя в представлении __call__ или из его шаблона.

3 голосов
/ 21 марта 2011

Содержимое папки показывает содержимое, не являющееся содержимым папки, - crraaaaAAAAzytalk.:) Не делай этого.Либо есть папка для каждого пользователя (/ inventory / user), либо создайте пользовательское представление с именем inventory.html.Вы можете сделать / инвентаризировать шо / инвентаря пользователя, но это один из шагов к тому, чтобы сделать Plone непонятными вещами, и в этом заключается мир боли.

Я не знаю, почему вы не смоглипросто назвать это / инвентарь / пользователь?Кажется, достаточно просто.Затем вставьте действие в окне просмотра пользователя по ссылке на панели инструментов, и все готово!: -)

Plone - система управления контентом.Используйте это для этого, как это должно быть использовано, и вы будете счастливы.Попытки заставить его делать то, чего он не хочет, это все равно, что пытаться создать спортивный автомобиль из скульптуры в стиле ар-деко.Это может выглядеть потрясающе, но не очень хорошо.: -)

...