1

私は次のURLを持っています:

urlpatterns += patterns('app_common.views_settings',
    url(r'([\w-]+)/(\d+)/settings/$', 'settings', name="configuration_homepage"),
    url(r'(?P<short_name>[\w-]+)/(?P<product_id>\d+)/settings/modify/(?P<sim_id>\d+)/$', 'modify_sim', name="modify_sim"),
)

urlpatterns += patterns('app_common.views_operator',
    url(r'^operator/$', 'choose_operator', name="choose_operator"),
    url(r'^(?P<short_name>[\w-]+)/project/$', 'choose_project', name="choose_project"),
    url(r'([\w-]+)/(\d+)/$', 'set_product', name="set_product"),
    url(r'^(?P<short_name>[\w-]+)/$', 'set_operator', name="set_operator"),
)

次を使用して設定ホームページを逆にしようとしました:

url = reverse('configuration_homepage', kwargs={short_name, product_id})
return HttpResponseRedirect(url)

機能する場合もありますが、この問題で失敗する場合もあります (short_name=OCI および product_id=1)。

Exception Type: NoReverseMatch
Exception Value:    Reverse for 'configuration_homepage' with arguments '(u'1', u'OCI')' and keyword arguments '{}' not found.

私のコードに何か問題があることを発見した場合は、自由に教えてください...変数に名前を付けようとしましたが、その場合はURLが見つかりません。

4

2 に答える 2

1

あなたkwargsは間違っています。あなたは a のset()代わりに aを渡していますdict()

あなたが(おそらく)欲しいのは:

url = reverse('configuration_homepage',
              kwargs={short_name: short_name, product_id: product_id})

これは、私が可能な限り優先dict(a=1, b=2)する多くの理由の 1 つです。{a:1, b:2}

于 2013-10-16T07:41:41.067 に答える