4

Django で異なるフラットページの特定のテンプレートをリンクすることは可能ですか?

例えば:

/about/    ->   templates/flatpages/about.html
/contact/  ->   templates/flatpages/contact.html

これは私が持っているものですが、これらのページはすべて default.html テンプレートを指しています

url(r'^(?P<url>about/)$', 'django.contrib.flatpages.views.flatpage'),
url(r'^(?P<url>contact/)$', 'django.contrib.flatpages.views.flatpage'),
url(r'^(?P<url>feedback/)$', 'django.contrib.flatpages.views.flatpage'),
4

2 に答える 2

7

お使いの Django のバージョンはわかりませんが、1.1.1 では、フラットページの追加/編集管理パネルの下部に「詳細オプション」リンクhttp://127.0.0.1:8000/admin/flatpages/flatpage/add/があります (例: コメントを有効にしたり、登録要件を有効にしたり、テンプレートを変更したりできます)。 .

プログラムでは、次のことができます。

from django.contrib.flatpages.models import FlatPage
my_flat_page = FlatPage.objects.get(title="example")
my_flat_page.template_name = "/flatpages/example.html"
my_flat_page.save()
#or just:
#from django.contrib.flatpages.models import FlatPage
#FlatePage.objects.filter(title="example").update(template_name="/flatpages/example.html")
#if you like one-liners
于 2009-11-08T12:38:07.807 に答える
1

もちろん!ここの手順に従ってフラットページをインストールした後、任意のフラットページのデフォルト テンプレート ( ) をオーバーライドできます。具体的には、 FlatPage モデルのインスタンス(特にフィールドですが、それだけではありません)flatpages/default.htmlをカスタマイズできます。モデル、または管理ページにあると思います。template_name

于 2009-11-08T03:15:54.620 に答える