2017-12-20 37 views
0

私は、(そのheader.htmlページに)ナビゲーションバーを持つdjangoプロジェクトにインデックスページを持っています。ナビゲーションバーを実際に動作させたい...現在、ナビゲーションバーの「教師」をクリックするとエラーが表示されます。Djangoのサイトは、htmlページから別のアプリケーションのメインhtmlページへのリンクを作成します

(ナビゲーションバーがあります)header.htmlのコード

</button> 
     <div class="collapse navbar-collapse" id="navbarResponsive"> 
      <ul class="navbar-nav ml-auto"> 
      <li class="nav-item mx-0 mx-lg-1"> 
       <a class="nav-link py-3 px-0 px-lg-3 rounded js-scroll-trigger" href="/teachers/teachers.html">Teachers</a> 
      </li> 
     </div> 

問題の上記のリンクは次のとおりです。

のhref = "/教師/ teachers.html">教師

ファイルパス/ teachers.htmlページがどこにあるの構造: C:\ Users \ユーザーユーザー\デスクトップ\ RAST \教師\テンプレート\教師

エラー:

Using the URLconf defined in website.urls, Django tried these URL patterns, in this order: 

admin/ 
admin/ 
header/ [name='header'] 
[name='index'] 
teachers/ 
The current path, teachers.html, didn't match any of these. 

私の質問です - 私は何header.htmlページに記述する必要があります(または、私は他のドスに何かが必要なのでしょうか?)ナビゲーションバーのボタンを取得しますかteachers.htmlページに行くには「教師」を選択します。

答えて

1

URLが正しくありません。代わりに、テンプレートファイル名を指しているの:Djangoがあることを意味し、動的なWebページの生成を特徴とするフレームワークです

href="/teachers/" 
3

href="/teachers/teachers.html" 

あなたはurls.pyファイルで提供されてきた実際のリンクを使用します高度なカスタマイズとコントロールを維持しながら、Webアプリケーションの保守と拡張を容易にする機能があります。これらの関数の1つはテンプレートです。 Djangoの世界で、あなたは次のようにウェブページ生成を指示するURLパスを入れてしまうので、あなたはすでに、テンプレートディレクトリにteachers.htmlを配置している

hrefのリンク> URL>ビューを> template

あなたのエラーメッセージは、あなたがどのURLが与えられたURLアドレスと一致しようとしたのかをあなたに知らせるので、これについての洞察を与えます。

:にキーワードジャンゴに教師をマッピングするためにどのようなビューの指示を与え、あなたの urls.pyで

<a href="{% url 'teachers %}">Teachers</a> 

を:あなたのnavbar.html

は、Djangoの構文で動的URLを入れて

urlpatterns = [ 
    ... 
    url(r'^teachers', views.teachers), 
    ... 
] 

views.pyでは、教師の機能がウェブページを適切に生成するために必要なことをDjangoに伝える必要があります。

def teachers(request): 
    return render(request, 'app/teachers.html') 

ここで、appはDjangoであなたのアプリの名前に置き換えてください。

これは、Djangoで動的フレームワークをどのように構築するかを示す高レベルの例です。詳細は、ビルドおよびプロジェクトの構造によって異なります。 Djangoのドキュメントとチュートリアルを読むことをお勧めします。彼らは徹底的で詳細です。 https://docs.djangoproject.com/en/2.0/

同様に、指したいページはすべて、URLで宣言し、ビューで生成する必要があります。 views.pyには、コンテキストでテンプレートに送信する必要のあるバックエンドの作業をたくさん行うことができます。

関連する問題