3

Django 1.4にアップグレードしたところ、メッセージングを含むいくつかの問題が発生しました。

アバターを変更しようとしたときに発生するエラーは次のとおりです。

'User' object has no attribute 'message_set'
Exception Location: /Users/nb/Desktop/myenv2/lib/python2.7/site-packages/django/utils/functional.py in inner, line 185

トレースバック:

File "/Users/nb/Desktop/myenv2/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
  111.                         response = callback(request, *callback_args, **callback_kwargs)
File "/Users/nb/Desktop/myenv2/lib/python2.7/site-packages/django/contrib/auth/decorators.py" in _wrapped_view
  20.                 return view_func(request, *args, **kwargs)
File "/Users/nb/Desktop/spicestore/apps/avatar/views.py" in change
  76.             request.user.message_set.create(
File "/Users/nb/Desktop/myenv2/lib/python2.7/site-packages/django/utils/functional.py" in inner
  185.         return func(self._wrapped, *args)

Exception Type: AttributeError at /avatar/change/
Exception Value: 'User' object has no attribute 'message_set'

また、メッセージングは​​サイトで機能しなくなりました。これを引き起こしている可能性があり、誰かが同様の問題を克服したDjango 1.4の変更は何ですか?

4

4 に答える 4

6

Django は 1.2 (リリース ノート) でメッセージ アプリを導入し、古いユーザー メッセージ API を非推奨にしました。

Django 1.4 では、古い message_set API が完全に削除されたため、コードを更新する必要があります。メッセージ docsに従うと、かなり簡単にわかるはずです。

于 2012-11-08T08:04:13.653 に答える
4

追加

from django.contrib import messages

その後

def foo(request):
    messages.add_message(request, messages.INFO, "Your message.")
于 2013-08-15T16:49:57.187 に答える
0

あなたの中には何がありINSTALLED_APPSますsettings.pyか?

'django.contrib.messages',そこに含まれていますか?

何かのようなもの:

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'django.contrib.humanize',
    ...
于 2012-11-08T05:55:31.320 に答える
0

Django 1.4 ドキュメントからメッセージ機能を有効にするには、settings.py で次の操作を行います。

設定を編集し、MIDDLEWARE_CLASSES含まれていることを確認します

'django.contrib.messages.middleware.MessageMiddleware'

セッションに依存するストレージ バックエンド (デフォルト) を使用している場合は、 をdjango.contrib.sessions.middleware.SessionMiddleware有効にして、 の前MessageMiddlewareに表示する必要がありますMIDDLEWARE_CLASSES

設定を編集し、TEMPLATE_CONTEXT_PROCESSORS含まれていることを確認します

'django.contrib.messages.context_processors.messages'

設定'django.contrib.messages'に追加INSTALLED_APPS

ジャンゴアバターに関する限り。ここにあるマスター ファイルを使用します: https://github.com/chadpaulson/django-avatar/tree/master/avatar

于 2013-02-13T01:23:05.553 に答える