1

プロジェクトを OpenShift サーバーでホストするために、最近 Django プロジェクトを 1.5 から 1.4 にダウングレードしました。その過程で、django-registration アプリからの逆引き参照の問題が発生したようです。

具体的には、/accounts/register/(新しいユーザーを登録するフォーム) にデータを POST すると、500 エラーが表示され、アカウントを確認するための電子メールがユーザーに送信されません。ただし、ユーザーは非アクティブなユーザーとしてauth_usersテーブルに追加され、新しいキーがregistrationテーブルに追加されますが、これは奇妙です。

この問題の解決策をインターネットで探しましたが、何を試しても問題は解決しません。私のトレースバックは次のように表示されます。

Internal Server Error: /accounts/register/

...

File "/var/lib/openshift/526304/python/virtenv/lib/python2.6/site-packages/Django-1.4-py2.6.egg/django/template/base.py", line 837, in render_node
    return node.render(context)

File "/var/lib/openshift/526304/python/virtenv/lib/python2.6/site-packages/Django-1.4-py2.6.egg/django/template/defaulttags.py", line 424, in render
    raise e

NoReverseMatch: Reverse for '"registration_activate"' with arguments '('0747dcf8831ac8d54ca69348bc499a2cc549a9ea',)' and keyword arguments '{}' not found.

助けてくれてありがとう

4

1 に答える 1

4

django-1.5のリリースノートより

つまり、テンプレートで {% load url from future %} を使用していない場合は、{% url myview %} などのタグを {% url "myview" %} に変更する必要があります。{% load url from future %} を使用していた場合は、Django 1.5 でその行を削除するだけです。

つまり、ダウングレード中に、

{% url "myview" %}

する必要があります

{% url myview %} 

これがエラーの原因です。

于 2013-08-18T21:36:07.123 に答える