タグ付けされた質問 「django-urls」

DjangoURLディスパッチシステム

9
オブジェクトのDjango管理URLを取得する
Django 1.0以前は、オブジェクトの管理URLを取得する簡単な方法があり、次のように使用する小さなフィルターを作成していました。 <a href="{{ object|admin_url }}" .... > ... </a> 基本的に私はビュー名が 'django.contrib.admin.views.main.change_stage' reverse( 'django.contrib.admin.views.main.change_stage', args=[app_label, model_name, object_id] ) URLを取得します。 ご想像のとおり、私はDjangoの最新バージョンに更新しようとしていますが、これは私が遭遇した障害の1つであり、管理URLを取得するためのこのメソッドはもう機能しません。 django 1.0でこれを行うにはどうすればよいですか?(または私はsvnの最新バージョンに更新しようとしているので、それについては1.1)。

7
DjangoのオプションのURLパラメータ
私はこのようなDjango URLを持っています: url( r'^project_config/(?P<product>\w+)/(?P<project_id>\w+)/$', 'tool.views.ProjectConfig', name='project_config' ), views.py: def ProjectConfig(request, product, project_id=None, template_name='project.html'): ... # do stuff 問題は、project_idパラメーターをオプションにすることです。 私が欲しい/project_config/と/project_config/12345abdce/なるよう、均等に有効なURLパターンであることを場合 project_id渡され、その後、私はそれを使用することができます。 現時点では、project_idパラメータなしでURLにアクセスすると404が返されます。

6
django 2.0のurls.pyでpath()またはurl()を使用する方が良いですか?
djangoオンラインコースでは、インストラクターは、url()関数を使用してビューを呼び出し、urlpatternsリストの正規表現を利用します。私はyoutubeでこれの他の例を見てきました。例えば from django.contrib import admin from django.urls import include from django.conf.urls import url urlpatterns = [ path('admin/', admin.site.urls), url(r'^polls/', include('polls.urls')), ] #and in polls/urls.py urlpatterns = [ url(r'^$', views.index, name="index"), ] ただし、Djangoチュートリアルでは、path()代わりに次のように使用します。 from django.urls import path from . import views urlpatterns = [ path('', views.index, name="index"), ] さらに、正規表現は、ビューを見つけられないので、path()関数で動作しないようです。path(r'^$', views.index, name="index")mysite.com/polls/ …


3
Djangoの静的STATIC_URLとSTATIC_ROOTの違い
私は混乱しstatic root、物事を明確にしたいと思います。 Djangoで静的ファイルを提供するには、次のものがsettings.pyand に含まれている必要がありurls.pyます。 import os PROJECT_DIR=os.path.dirname(__file__) 1.静的ファイルを収集するディレクトリへの絶対パス STATIC_ROOT= os.path.join(PROJECT_DIR,'static_media/') 2.静的ファイルのURLプレフィックス STATIC_URL = '/static/' 3.静的ファイルの追加の場所 STATICFILES_DIRS = ( os.path.join(PROJECT_DIR,'static/'),) ...そしてurls.py次の行で: from django.contrib.staticfiles.urls import staticfiles_urlpatterns urlpatterns += patterns('', ( r'^static/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.STATIC_ROOT} )) 4.また、 python manage.py collectstatic 質問: 誰かがワークフローを私に説明してくれませんか?今のところ、上記のコードスニペットを指定された場所にコピーして貼り付け、静的ディレクトリに新しいファイルを作成し続けます。私にはsettings.STATIC_ROOT、しかし、私は別のディレクトリに指摘しています。 誰かが各設定のワークフローを説明できればすばらしいでしょう:ファイルがどのように収集および管理されるか、そして従うべき良い習慣は何でしょうか。 ありがとう。

2
NoReverseMatchエラーとは何ですか?どのように修正しますか?
私はいくつかのコードを持っていて、それが実行されると、NoReverseMatchをスローして次のように言います。 NoReverseMatch at / my_url / 'my_url_name'の引数 '()'とキーワード引数 '{}'の逆が見つかりません。n個のパターンが試行されました:[] これはどういう意味ですか。どうすればよいですか。

4
Django URL TypeError:include()の場合、ビューは呼び出し可能またはリスト/タプルでなければなりません
Django 1.10にアップグレードすると、次のエラーが表示されます。 TypeError: view must be a callable or a list/tuple in the case of include(). 私のurls.pyは次のとおりです: from django.conf.urls import include, url urlpatterns = [ url(r'^$', 'myapp.views.home'), url(r'^contact/$', 'myapp.views.contact'), url(r'^login/$', 'django.contrib.auth.views.login'), ] 完全なトレースバックは次のとおりです。 Traceback (most recent call last): File "/Users/alasdair/.virtualenvs/django110/lib/python2.7/site-packages/django/utils/autoreload.py", line 226, in wrapper fn(*args, **kwargs) File "/Users/alasdair/.virtualenvs/django110/lib/python2.7/site-packages/django/core/management/commands/runserver.py", line 121, …

6
include()で名前空間を使用する場合のapp_nameに関するImproperlyConfiguredError
私は現在Djangoを試しています。urls.pyのnamespaceいずれかのinclude()sで引数を使用します。サーバーを実行して参照しようとすると、このエラーが発生します。 File "C:\Users\User\AppData\Local\Programs\Python\Python36-32\lib\site-packages\django\urls\conf.py", line 39, in include 'Specifying a namespace in include() without providing an app_name ' django.core.exceptions.ImproperlyConfigured: Specifying a namespace in include() without providing an app_name is not supported. Set the app_name attribute in the included module, or pass a 2-tuple containing the list of patterns and app_name instead. …

5
Django URLリダイレクト
他のどのURLとも一致しないトラフィックをホームページにリダイレクトするにはどうすればよいですか? urls.py: urlpatterns = patterns('', url(r'^$', 'macmonster.views.home'), #url(r'^macmon_home$', 'macmonster.views.home'), url(r'^macmon_output/$', 'macmonster.views.output'), url(r'^macmon_about/$', 'macmonster.views.about'), url(r'^.*$', 'macmonster.views.home'), ) 現状では、最後のエントリはすべての「その他」のトラフィックをホームページに送信しますが、HTTP 301または302のいずれかを介してリダイレクトしたいと思います。

8
Djangoを使用して現在のURL名を取得するにはどうすればよいですか?
現在のURLに従って動的にURLを作成する必要があります。{% url %}タグを使用するのが最も簡単な方法ですが、新しいURLを動的に生成するには、現在のURL名が必要です。 現在のビューにつながるurlconfに添付されたURL名を取得するにはどうすればよいですか? 編集:私は手動でURLを使用して手作りできることを知っていますがget_absolute_url、それは講義の一部であり、URLを作成する1つの方法のみを示したいので、むしろ避けたいと思います。 学生は使い方を知っています{% url %}。彼らは、現在のURLに基​​づいてより完全なURLを生成する必要があるときに、問題に直面していることを知っています。最も簡単な方法は{% url %}、いくつかのバリエーションを付けて、再度使用することです。urlに名前を付けたので、現在のビューを呼び出したurlの名前を取得する方法を知る必要があります。 編集2:別のユースケースは、ベーステンプレートに従ってベーステンプレートの一部を異なる方法で表示することです。他の方法もあります(CSSと{%block%}を使用しますが、ビュー名がリンクと一致する場合は、base.htmlのメニューエントリのタグを削除できると便利な場合があります。

6
末尾にスラッシュがないdjangoURLはリダイレクトされません
2台の別々のコンピューターに2つのアプリケーションがあります。コンピューターAのurls.pyファイルには、次のような行があります。 (r'^cast/$', 'mySite.simulate.views.cast') そして、そのURLはとの両方mySite.com/cast/で機能しmySite.com/castます。しかし、コンピューターBIには、次のように書き出された同様のURLがあります。 (r'^login/$', 'mySite.myUser.views.login') 何らかの理由で、コンピューターBではurl mySite.com/login/は機能しますが、mySite.com/loginハングして、mySite.com/login/コンピューターAの場合と同じように直接戻ることはありません。見逃したものはありますか?どちらのurl.pyファイルも私と同じように見えます。

6
{%urlを使用する??? djangoテンプレートの%}
テンプレートで「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 …

3
Djangoで同じパラメーターの複数の変数を使用してrequest.GETを処理する方法
Djangoビューではrequest.GET['variablename']、にアクセスできるため、ビューでは次のようなことができます。 myvar = request.GET['myvar'] 実際のrequest.GET['myvar']オブジェクトタイプは次のとおりです。 <class 'django.http.QueryDict'> ここで、同じパラメーター名を持つ複数の変数を渡したい場合、つまり: http://example.com/blah/?myvar=123&myvar=567 listパラメータに対してPythonを返したいmyvar場合は、次のようにします。 for var in request.GET['myvar']: print(var) ただし、URLで渡された最後の値のみを取得しようとすると、つまり上記の例では567が取得され、シェルの結果は次のようになります。 5 6 7 ただし、印刷request.GETすると、次のようになりますlist。 <QueryDict: {u'myvar': [u'123', u'567']}> 更新:最後の値を返すように設計されています。私のユースケースはリストが必要です。 djangoドキュメントから: QueryDict。getitem(key)指定されたキーの値を返します。キーに複数の値がある場合、 getitem()は最後の値を返します。キーが存在しない場合、django.utils.datastructures.MultiValueDictKeyErrorを発生させます。(これはPythonの標準KeyErrorのサブクラスであるため、KeyErrorのキャッチに固執することができます QueryDict.getlist(key)要求されたキーを含むデータをPythonリストとして返します。キーが存在しない場合は、空のリストを返します。ある種のリストを返すことが保証されています。 更新:django devがこれを行った理由を誰かが知っている場合は、私に知らせてください。リストを表示するのは直感に反しているようで、リストのようには動作しません。あまりパイソンではありません!

3
カスタムHTTPヘッダーを介して参照URLを取得する方法はありますか?
現在、次の関数を使用して参照ビューを取得しています。 def get_referer_view(request, default=None): referer = request.META.get('HTTP_REFERER') if not referer: return default # remove the protocol and split the url at the slashes referer = re.sub('^https?:\/\/', '', referer).split('/') if referer[0] != request.META.get('SERVER_NAME'): return default # add the slash at the relative path's view and finished referer = u'/' + u'/'.join(referer[1:]) …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.