2017-06-07 37 views
0

私は/ mysite/blogs/newの行に沿って考えています。私はadd_childと約Routablepageを知っていますが、'permissions route'もありますが、URLを使ってページを作成する方法はまだわかりません。ユーザーがURL経由でページを作成する方法を教えてください。

私は、これを行うための指示がないように思われることは驚きです。管理方法に頼ることは、多くの「素朴な」ユーザーにとっては容認できません。確かに、WagtailはWordpressのようなものではなく、「投稿を追加」ボタンなどを持っているという意味では、しばらく時間がかかりました。

ドキュメントには、ユーザーが(明らかに)管理セクションを介してページを作成することが明白に記載されていません。実際には、CMSがIMOを使いやすくする必要があるにもかかわらず、開発者はDjangoに精通しているという前提があるようです。

わかりやすく、私はワグテールは素晴らしいと思っていますが、指示には何かが残されています。おそらく私は自分でそれを更新しようとします!

+0

セキレイは基本的にWordpressのことをしようとしません。 Wordpressが単一の固定ページモデル(タイトル、本文、タグなど)を提供するところでは、Wagtailは開発者として、あなた自身がページモデルとテンプレートを定義することを期待しています。それに基づいて、Wagtailはサイトのフロントエンド(あなたが構築する)と管理者(あなたのために提供される)との明確な区別を保つのが理にかなっています - 両者があなたのために提供されているためWordpressはこれらの行をぼかすことができます。あなたはWagtailの意図したワークフローを回避することができますが、それはDjango開発に落とす必要があるポイントです。 – gasman

答えて

0

[バード/ユーザーバーの編集]を有効にしている場合は、ページツリーの任意の場所に子ページを追加するためのボタンが表示されます。純粋なユーザーにこのオプションを提供したい場合は、権限をかなり限定的にすることで、特定の場所でのみこのオプションが表示され、Adminの他の「設定」エリアは表示されません。

Wagtail Userbar

これを追加するための管理画面には、独自のURLを持っている:それは一般的に13が現在のページのIDでhttp://www.example.com/admin/pages/13/add_subpage/、のように見えます。そのリンクを自分で提示する場合は、テンプレート内のリンクを手動でテンプレートに追加して、手動で追加することができますが、まずユーザーに関連する権限があることを確認する必要があります。これは、テンプレートではなく、Pythonで行うのが最適です。 Wagtailがこれを行う方法については、https://github.com/wagtail/wagtail/blob/master/wagtail/wagtailadmin/userbar.pyを参照してください。

あなたの元の要求に近づくために、あなたはRoutablePageMixinと上記のすべてを組み合わせることができ、ルートを作成することによって、同じURLにリダイレクトする「追加」:

@route(r'^add$') 
def add_child_page(self, request): 
    return redirect(reverse('wagtailadmin_pages:add_subpage', args=[self.pk])) 
+0

私は「鳥/ユーザーバーの編集」について知らなかった!私はRoutablePageMixinを実装しましたが、どのように使用するのかは分かりませんでしたので、あなたの例は非常に便利です - ありがとう。 –

関連する問題