すべてのアプリから描画できるプロジェクトのベーステンプレートを作成できますか?または、アプリごとにベーステンプレートを作成する必要がありますか?そして、それらを同じにしたい場合、私はそれらをコピーするだけですか?
もちろんできます。 base.htmlの簡単な例
<!DOCTYPE html>
<html>
<head>
<title>My Project</title>
</head>
<body>
{% block content %}{% endblock content %}
</body>
</html>
また、view.htmlページを持つmyappというアプリがあるとします。
{% extends "base.html" %}
{% block content %}
<h2>Content for My App</h2>
<p>Stuff etc etc.</p>
{% endblock content %}
ドキュメントを読む に時間がかかります
はい、絶対にできます。 Djangoテンプレートでextends
およびinclude
テンプレートタグを使用します。
私はDjangoを学び始めており、最近これを理解しました。私のコードは Github にあります。Djangoテンプレートをどのように構成してbase.html
を継承し、次にinclude
の一般的なものを継承することに興味がある場合navbarやヘッダー、フッターなど。
最後の回答には問題がありますが、ここに正しいものがあります。次のようなBase.htmlが必要です。
{% load staticfiles %}
<!DOCTYPE html>
<html>
<head>
<title>My Project</title>
</head>
<body>
{% block content %}{% endblock %}
</body>
</html>
また、index.html
{% extend "appname/base.html" %}
{% block content %}
<h1>test</h1>
{% endblock %}
はい、他のアプリが拡張するプロジェクトのベーステンプレートを作成できます。 @Kenny_Shenの回答を確認してください。
アプリの分離について懸念がある場合は、2つのメモを追加したいだけです。
アプリが「base.html」の命名規則に依存しないようにするには、変数に実際の名前を挿入できます。以下をご覧ください: Djangoのテンプレート拡張機能の使用方法変数? 詳細については、
他のアプリとの衝突を避けるために、アプリテンプレートブロックに「コンテンツ」ではなく別の名前を付けることができます。