0

私は Wagtail と python を初めて使用するので、私の問題を解決してくれると助かります。

Web アプリ (wagtail Web サイト + REST API バックエンド) があります。

私のウェブサイトには2つのページがあります:

  • アクセス可能なオブジェクト (写真など) のリストを含むホームページ
  • 写真の詳細情報が掲載されたフォトページ

私が達成したいこと:

だから、私はしたいです

  • フォトページ用のモデルが 1 つある
  • 要求された URL に基づいて写真ページを入力します (つまり、ホームページからユーザーを example.com/photo?id=12345 にリダイレクトすると、id=12345 の写真に関する情報が入力されます)。

リクエストされたURLを解析してIDを取得し、ページにAPIからの情報を入力するミドルウェアが必要だと思います。この問題に対する標準的な解決策はありますか?

4

1 に答える 1

1

Page オブジェクト (および Page から継承するすべてのクラス) には、テンプレートのコンテキストの事前レンダリングを追加するために使用できる get_context メソッドがあります。

from django.shortcuts import get_object_or_404

class PhotoPage(Page):
    # your model definition ...
    def get_context(self, request):
        context = super(PhotoPage, self).get_context(request)
        photo_pk = request.GET.get('id',None)
        photo = get_object_or_404(YourPhotoModel,pk=photo_pk) # if no matching photo, return 404. You can do whatever you like instead :)
        context['photo'] = photo
        return context

写真テンプレートで、写真モデル インスタンスに直接アクセスできるようになりました...

{{ photo.some_attribute }}
{{ photo.some_other_attribute }}
于 2016-02-06T22:03:43.447 に答える