[解決済み] url ?%} を使用する %} を使用する
2023-02-27 19:41:21
質問
私はテンプレートで 'url' タグを使用する方法の答えのためにグーグル上でたくさん見てきましたが、多くの応答は 'テンプレートにそれを挿入し、URL が必要なビューでそれをポイントするだけです' と言っている。まあ、私のために喜びはありません:(私は可能な限りすべての順列を試してみて、最後の手段としてここに投稿することに頼んではいる。
だからそれはここにあります。私のurls.pyは次のようになります。
from django.conf.urls.defaults import *
from login.views import *
from mainapp.views import *
import settings
# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
# Example:
# (r'^weclaim/', include('weclaim.foo.urls')),
(r'^login/', login_view),
(r'^logout/', logout_view),
('^$', main_view),
# Uncomment the admin/doc line below and add 'django.contrib.admindocs'
# to INSTALLED_APPS to enable admin documentation:
# (r'^admin/doc/', include('django.contrib.admindocs.urls')),
# Uncomment the next line to enable the admin:
(r'^admin/', include(admin.site.urls)),
#(r'^static/(?P<path>.*)$', 'django.views.static.serve',{'document_root': '/home/arthur/Software/django/weclaim/templates/static'}),
(r'^static/(?P<path>.*)$', 'django.views.static.serve',{'document_root': settings.MEDIA_ROOT}),
)
私の「login」ディレクトリにある「views.py」は以下のような感じです。
from django.shortcuts import render_to_response, redirect
from django.template import RequestContext
from django.contrib import auth
def login_view(request):
if request.method == 'POST':
uname = request.POST.get('username', '')
psword = request.POST.get('password', '')
user = auth.authenticate(username=uname, password=psword)
# if the user logs in and is active
if user is not None and user.is_active:
auth.login(request, user)
return render_to_response('main/main.html', {}, context_instance=RequestContext(request))
#return redirect(main_view)
else:
return render_to_response('loginpage.html', {'box_width': '402', 'login_failed': '1',}, context_instance=RequestContext(request))
else:
return render_to_response('loginpage.html', {'box_width': '400',}, context_instance=RequestContext(request))
def logout_view(request):
auth.logout(request)
return render_to_response('loginpage.html', {'box_width': '402', 'logged_out': '1',}, context_instance=RequestContext(request))
で、最後にlogin_viewが指し示すmain.htmlは以下のような感じです。
<html>
<body>
test! <a href="{% url logout_view %}">logout</a>
</body>
</html>
では、なぜ毎回「NoReverseMatch」が表示されるのでしょうか?
*(少し違うノートで、私はすべての私のrender-to-responseの終わりに'context_instance=RequestContext(request)'を使わなければなりませんでした。そうしないと、私のテンプレートで{{ MEDIA_URL }}を認識せず、私はどんなcssやjsファイルも参照できませんでした。なぜなのかはよくわかりません。私には正しいとは思えません)*。
どのように解決するのですか?
をインポートする代わりに
logout_view
関数の中で文字列を提供する必要があります。
urls.py
ファイルに記述します。
では無く
(r'^login/', login_view),
しかし
(r'^login/', 'login.views.login_view'),
というのが標準的なやり方です。そして、テンプレート内のURLにアクセスするには、以下を使用します。
{% url login.views.login_view %}
関連
-
Django でチェックボックスの値を取得する方法
-
オペレーショナルエラーです。1050 解決
-
django のクエリセット操作
-
[解決済み] Djangoのテンプレートからsettings.pyの定数にアクセスすることは可能ですか?
-
[解決済み] Django テンプレート内で現在の URL を取得する方法は?
-
[解決済み] Djangoアプリの命名規則はありますか?
-
[解決済み] Django テンプレート url タグに url パラメータを追加する方法は?
-
[解決済み] egg_infoエラーでpipからインストールできない
-
[解決済み] django のテンプレートで最初の文字を大文字にする
-
[解決済み] django テンプレートで "ブロック" を繰り返す方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Django QuerySet マルチテーブル結合/条件付きピッキング/マージ
-
[解決済み] Django のクエリで OR フィルタを行うにはどうすればよいですか?
-
[解決済み] django-rest-framework の管理者スタイルのブラウズ可能なインターフェイスを無効にする方法は?
-
[解決済み] Django の filter と get は単一オブジェクトの場合?
-
[解決済み] Django で null を許容するユニークなフィールド
-
[解決済み] Django でモデルのフィールドを取得する
-
[解決済み] django のテンプレートで最初の文字を大文字にする
-
[解決済み] Djangoのクッキー、どうすれば設定できますか?
-
[解決済み] Django 1.9 の apps.py の目的は何ですか?
-
[解決済み] django のモデルのクラス名を取得する