2

時々、私の愚かで無謀で勇敢なプログラミングの腸が私をいくつかの危険な場所に連れて行ってくれます:

私はsqlite3でDjango1.4アプリケーションを開始し、次にmysqlに移行しました。大したことはありません。しかし、その後、自分のモデルがNoSqlモデルにうまく適合することに気付き、非リレーショナルデータベースをサポートするDjango1.3のフォークであるdjango-nonrelでMongoDBを試すことにしました。バージョン1.4はまだ使用する準備ができていません。

だから、私は自分のリポジトリを分岐し、virtualenvを作成し、django-nonrelをpipinstalledしましたが、実行する./manage.py shellとこのメッセージが表示されます

Traceback (most recent call last):
  File "./manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/Users/marcoslhc/Documents/Proyectos/fontcase/mongoBE/lib/python2.7/site-packages/django/core/management/__init__.py", line 429, in execute_from_command_line
    utility.execute()
  File "/Users/marcoslhc/Documents/Proyectos/fontcase/mongoBE/lib/python2.7/site-packages/django/core/management/__init__.py", line 379, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/Users/marcoslhc/Documents/Proyectos/fontcase/mongoBE/lib/python2.7/site-packages/django/core/management/__init__.py", line 252, in fetch_command
    app_name = get_commands()[subcommand]
  File "/Users/marcoslhc/Documents/Proyectos/fontcase/mongoBE/lib/python2.7/site-packages/django/core/management/__init__.py", line 101, in get_commands
    apps = settings.INSTALLED_APPS
  File "/Users/marcoslhc/Documents/Proyectos/fontcase/mongoBE/lib/python2.7/site-packages/django/utils/functional.py", line 276, in __getattr__
    self._setup()
  File "/Users/marcoslhc/Documents/Proyectos/fontcase/mongoBE/lib/python2.7/site-packages/django/conf/__init__.py", line 42, in _setup
    self._wrapped = Settings(settings_module)
  File "/Users/marcoslhc/Documents/Proyectos/fontcase/mongoBE/lib/python2.7/site-packages/django/conf/__init__.py", line 139, in __init__
    logging_config_func(self.LOGGING)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/logging/config.py", line 776, in dictConfig
    dictConfigClass(config).configure()
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/logging/config.py", line 562, in configure
    'filter %r: %s' % (name, e))
ValueError: Unable to configure filter 'require_debug_false': Cannot resolve 'django.utils.log.RequireDebugFalse': No module named RequireDebugFalse

RequireDebugFalseはDjango1.4の新機能であり(ここここを参照)、1.4で新しく追加された他の基本的な魔法は、この新しいインストールでも機能しないと思います。またはを実行せずにアプリケーションをDjango1.3に戻すことができるかどうか疑問に思いました。django-admin.py startprojectdjango-admin.py startapp

4

2 に答える 2

1

あなたはおそらくそれを行うことができますが、あなたはおそらく再び前進するためにドアを開いたままにしておきたいでしょう。

私が過去にこれを処理した方法は、可能であれば、コードに大規模な変更を加えないことです。代わりに、すでに行ったことを実行します。コードを実行して、爆発するのを待ちます。問題の原因を特定してから、次のいずれかを実行します。

  • 必要な機能を提供する(または少なくとも静かに何もしない)スタブを作成し、
  • 機能を1.3の個人用コピーにバックポートするか、
  • モンキーパッチ機能を変更されていない1.3にパッチします。(私の推薦)

1.4の独自の新機能を完全に理解していない限り、使用可能な環境をすばやく思い付くことができることに驚くでしょう。モンキーパッチファイルの長さが約100行で、約12の機能を古いバージョンに後付けするプロジェクトが1つありました。

于 2012-12-21T16:27:17.080 に答える
0

プロジェクトでdjango1.4を使用したことがない場合は、1.3プロジェクトを作成し、そこからログ設定をコピーできます。その後、あなたは大丈夫なはずです。

于 2012-12-21T16:22:42.167 に答える