2

django を使用した Web サイトにページングする必要があります。index.htmlbooks.html

books.html最初のページにこのリンクがあります

<a href="books.html">books</a>

これbooks.htmlは最初のページに戻るためのものです。

<a href="index.html">Home</a>

そして私のURL confはこのようなものです

urlpatterns = patterns('',
    url(r'^$', 'mysite.views.home', name='home'),
    url(r'^books.html/$', 'mysite.views.bookpage', name='books'),
    url(r'index.html/$', 'mysite.views.home', name='home'),
)

views.py

def home(request):
        return render_to_response('index.html')

def bookpage(request):
        return render_to_response('books.html')

2 番目のリンクをクリックしてホームに戻るとき。私のURLアドレスは次のようになります

mysite.com/books.html/index.html/

mysite.com/の 2 番目のリンクをクリックしたときに、URL を元に戻すにはどうすればよいbooks.htmlですか?

タイトルが適切でない場合は申し訳ありません。質問のタイトルがわかりませんでした

アップデート

url(r'^index.html/$', 'mysite.views.home', name='home')URL パターンから削除し<a href="{% url 'home' %}">、2 番目のページで使用しました。しかし、そのリンクをクリックしても何も起こりません

4

3 に答える 3

3

他の回答で見逃された2つの問題:

  1. ^3 番目の URL にa がありません:url(r'^index.html/$', 'azahra.views.home', name='home'),
  2. 同じname='home'. そのうちの 1 つを変更する必要があります。

前述のように、テンプレートにハードコーディングするのではなく、{% url 'url_name' %} テンプレート タグも使用する必要があります。

また、アプリケーションが実際に名前が付けられていない限り、mysite実際のビューを参照するように変更する必要があります...

于 2015-03-16T17:22:02.300 に答える
3
  1. Django では<a href="anything.html">. urlページ アドレスにはテンプレート タグを使用する必要があります。urlテンプレートタグの詳細: https://docs.djangoproject.com/en/1.7/ref/templates/builtins/#url

例:<a href="{% url 'home' %}">

  1. urls.py にはと が^books.html/$ありindex.html/$ます。^索引の前に欠落していることに気付きましたか? 追加することもできます。

  2. urls.py の異なるパターンに同じ名前を使用しないでください。

于 2015-03-16T17:12:27.317 に答える
2

がありません^:

urlpatterns = patterns('',
    url(r'^$', 'mysite.views.home', name='home'),
    url(r'^books.html/$', 'azahra.views.bookpage', name='books'),
    url(r'^index.html/$', 'azahra.views.home', name='home'),
)

urlテンプレート タグを見てみましょう。これにより、テンプレート内の URL ルーティングが簡素化され、この種のエラーから解放されます。

于 2015-03-16T17:10:54.123 に答える