0

私は公式のDjangoチュートリアルを完了する過程にあり、パート3で立ち往生しています。テンプレートはパート2の最後のパートでも使用されているため、私が行ったことを説明します。

パート2では、「Django自体のソースコード(django / contrib / admin / templates)のデフォルトのDjangoadminテンプレートディレクトリ内からテンプレートadmin/ base_site.htmlを、使用しているディレクトリのadminサブディレクトリにコピーするように指示されました。 TEMPLATE_DIRS。」

そこで、次の相対パスを持つ新しいディレクトリ「admin」を作成しました(Djangoがディレクトリ名「mysite」を使用する場合は「django_test」を使用することに注意してください:/ django_test / polls / templates/admin。base_site.htmlファイルをコピーしましたこのディレクトリに。

ローカルブラウザでファイルをレンダリングすると、次のように表示されます。{% extends "admin/base.html" %} {% load i18n %} {% block title %}{{ title }} | {% trans 'Django site admin' %}{% endblock %} {% block branding %}{% trans 'Django administration' %}{% endblock %} {% block nav-global %}{% endblock %}

パート3では、新しいサブディレクトリpolls/index.htmlにindex.htmlファイルを作成します。しかし、このファイルを(localhostサーバーを使用して)Webブラウザーにロードすると、箇条書きの代わりにhtmlコードが表示されます(以下を参照)。

また、settings.pyファイルのTEMPLATE_DIRSを編集して、/ Users / myname / Sites / django_test / django_test/templatesの下にindex.htmlが見つかることをDjangoに通知したことに注意してください。

以下に、ローカルサーバーがレンダリングするコードを貼り付けます(必要な箇条書きの代わりに)。箇条書きではなく、このコードがレンダリングされる理由を知っていますか?

<html>
<head><title>Test</title></head>

<body>
{% if latest_poll_list %}
    <ul>
    {% for poll in latest_poll_list %}
        <li><a href="/polls/{{ poll.id }}/">{{ poll.question }}</a></li>
    {% endfor %}
    </ul>
{% else %}
    <p>No polls are available.</p>
{% endif %}

</body>
</html>

ファイルの整理方法を間違えているのかどうかわかりません。誰かが私が間違っていることについて考えているかもしれませんか?

ファイル

4

2 に答える 2

2

コメントで言うように、ファイルパスをブラウザに入れています。当然、テンプレートのテキストが表示されます。これは、Django を完全にバイパスし、レンダリングされていないテンプレートをディスクからブラウザーに読み込ませるためです。

チュートリアルで説明されているように、通常の URL メカニズムを使用して、Django にテンプレートを提供してレンダリングするように依頼する必要があります。そのセクションの前半でlocalhost:8000/admin/、管理サイトを見に行きましたが、テンプレートを置き換えたからといって、これが変わったわけではありません。そのアドレスに戻ると、更新されてレンダリングされたテンプレートが表示されます。

于 2012-11-25T20:46:32.420 に答える
0

コツをつかめば、django 管理サイトは簡単です。

実行する手順は次のとおりです。

-urls.py で django 管理サイトのコメントを外します。

-admin フォルダー (django パッケージ内) を settings.py の STATIC_ROOT で指定されたフォルダーにコピーするか、PYTHONPATH でディレクトリを使用できるようにして、css を管理サイトで使用できるようにします。

つまり、管理サイト用のテンプレートを作成する必要はありません。ただし、プロジェクトで作成したビューにアクセスするには、テンプレートを作成する必要があります

于 2012-11-25T20:13:27.253 に答える