[解決済み] NoReverseMatch at /
2022-02-13 04:12:50
質問
かなり意味のあるurlを作ろうとしているのですが、やり方が間違っているのでしょうか。
これは有効です。
from django.conf.urls.defaults import patterns, url
from places.views import explore_view
urlpatterns = patterns('',
url(r'', explore_view, name='explore'),
)
これは、そうではありません。
from django.conf.urls.defaults import patterns, url
from places.views import explore_view
urlpatterns = patterns('',
url(r'(?P<countryorcategory>[0-9A-Za-z._%+-]+)', explore_view, name='explore'),
)
このエラーが出るように
引数 '()' とキーワード引数 '{}' を持つ 'explore' のリバース が見つかりません。
以下は、explorer_viewのコードです。
def explore_view(request, countryorcategory=None):
"""
This is the explore view - to view places sugeested by ambassadors
"""
user = request.user
page = request.GET.get("page", 1)
per_page = request.GET.get("per_page", 20)
category_id = request.GET.get("category_id", None)
attrs = request.GET
lat = safe_attr(attrs, "lat", "float", None)
lon = safe_attr(attrs, "lon", "float", None)
q = request.GET.get('q', None)
if q and not lat or lon:
cache_key = 'GoogleGeocode-{}'.format(hashlib.md5(q.encode('UTF-8', 'replace')).hexdigest())
latlon = cache.get(cache_key)
if not latlon:
latlon = geocode(q)
if latlon:
cache.set(cache_key, latlon)
if latlon:
lat = latlon['lat']
lon = latlon['lng']
if not q:
q = ''
category_names = getattr(settings, "EXPLORE_CATEGORIES", [])
categories = [Category.objects.get(name=cat_name).serialize() for cat_name in category_names]
more = True
places = Place.objects.explore_places(user, category_id=category_id, lat=lat, lon=lon, page=page, per_page=20)
if len(places) != per_page:
more = False
return render_to_response('explore/main.html', {'places': places, 'categories': categories, 'category_id': category_id, 'lat': lat, 'lon': lon, 'more': more, 'q': q}, RequestContext(request))
解決方法は?
この行です。
url(r'(?P<countryorcategory>[0-9A-Za-z._%+-]+)', explore_view, name='explore')
...は、引数を取るurlを定義しています。
countryorcategory
をテンプレートに追加します。テンプレート内に以下のいずれかのurlの引数を記述する必要があります。
{% url 'explore' argument %}
{% url 'explore' countryorcategory=argument %}
引数以外のurlを同じ名前で使い続けたい場合は、追加のurlを定義することができます。 同じ名前の が、異なるパターンを持つ。例えば
urlpatterns = patterns('',
url(r'(?P<countryorcategory>[0-9A-Za-z._%+-]+)', explore_view, name='explore'),
url(r'', explore_view, name='explore'),
)
次に
{% url 'explore' %}
は、引数ありでも引数なしでも動作するはずです。
関連
-
[解決済み] django 上書きフォームクリーンメソッド
-
[解決済み] Django manage.py ランサーバーが動作しない
-
[解決済み] 2つのフィールド「unique」をカップルとして定義する方法
-
djangoでログ出力を利用する
-
[解決済み] http://127.0.0.1:8000/ には接続できるのに、http://192.168.1.6/ には接続できないのはなぜですか?
-
[解決済み] Djangoにおける{% %}と{{ }}について
-
[解決済み] NoReverseMatchエラーとは何ですか、またどのように修正しますか?
-
[解決済み】Djangoでメールテンプレートを作成する
-
[解決済み】Djangoのvalues_listとvaluesの比較
-
[解決済み】reverse()とは何ですか?)
最新
-
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 1.7 migrate で "table already exists" というエラーが発生する。
-
[解決済み] Django ランサーバー使用時にデータを印刷する方法
-
[解決済み] クライアントからデータを受信できませんでした」のデバッグ方法。接続が相手によってリセットされました"
-
[解決済み] Django 引数 '()' とキーワード引数 '{}' を持つリバースが見つかりません。
-
エラーの場合 環境変数 DJANGO_SETTINGS_MODULE を定義する必要があります ... 問題解決
-
[解決済み] Django - テンプレートのforループで番号を反復する
-
[解決済み】テンプレートコード内で変数に値を設定するには?
-
[解決済み】Django の SECRET_KEY を変更した場合の影響について
-
[解決済み] [Djangoで「一括更新」する方法とは?