Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
django通知:AttributeError:&x27;模块';对象没有属性';创建通知类型';_Django_Django Models - Fatal编程技术网

django通知:AttributeError:&x27;模块';对象没有属性';创建通知类型';

django通知:AttributeError:&x27;模块';对象没有属性';创建通知类型';,django,django-models,Django,Django Models,:) 我试图在同一个项目上部署django notification和django avatar,但是,当我运行python2 manage.py syncdb时,我收到以下异常: (dispersion)jorge [~/coders/desarrollo/dispersion] ~> python2 manage.py validate python2 manage.py validate 0 errors found (dispersion)jorge [~/coders/desar

:)

我试图在同一个项目上部署django notification和django avatar,但是,当我运行python2 manage.py syncdb时,我收到以下异常:

(dispersion)jorge [~/coders/desarrollo/dispersion] ~> python2 manage.py validate
python2 manage.py validate
0 errors found
(dispersion)jorge [~/coders/desarrollo/dispersion] ~> python2 manage.py syncdb
python2 manage.py syncdb
Creating tables ...
Creating table django_comments
Creating table django_comment_flags
Creating table threadedcomments_threadedcomment
Creating table threadedcomments_freethreadedcomment
Creating table threadedcomments_testmodel
Creating table notification_noticetype
Creating table notification_noticesetting
Creating table notification_noticequeuebatch
Creating table announcements_announcement
Creating table announcements_dismissal
Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/home/jorge/coders/desarrollo/dispersion/lib/python2.7/site-packages/Django-1.4.3-py2.7.egg/django/core/management/__init__.py", line 443, in execute_from_command_line
    utility.execute()
  File "/home/jorge/coders/desarrollo/dispersion/lib/python2.7/site-packages/Django-1.4.3-py2.7.egg/django/core/management/__init__.py", line 382, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/home/jorge/coders/desarrollo/dispersion/lib/python2.7/site-packages/Django-1.4.3-py2.7.egg/django/core/management/base.py", line 196, in run_from_argv
    self.execute(*args, **options.__dict__)
  File "/home/jorge/coders/desarrollo/dispersion/lib/python2.7/site-packages/Django-1.4.3-py2.7.egg/django/core/management/base.py", line 232, in execute
    output = self.handle(*args, **options)
  File "/home/jorge/coders/desarrollo/dispersion/lib/python2.7/site-packages/Django-1.4.3-py2.7.egg/django/core/management/base.py", line 371, in handle
    return self.handle_noargs(**options)
  File "/home/jorge/coders/desarrollo/dispersion/lib/python2.7/site-packages/Django-1.4.3-py2.7.egg/django/core/management/commands/syncdb.py", line 110, in handle_noargs
    emit_post_sync_signal(created_models, verbosity, interactive, db)
  File "/home/jorge/coders/desarrollo/dispersion/lib/python2.7/site-packages/Django-1.4.3-py2.7.egg/django/core/management/sql.py", line 189, in emit_post_sync_signal
    interactive=interactive, db=db)
  File "/home/jorge/coders/desarrollo/dispersion/lib/python2.7/site-packages/Django-1.4.3-py2.7.egg/django/dispatch/dispatcher.py", line 172, in send
    response = receiver(signal=self, sender=sender, **named)
  File "/home/jorge/coders/desarrollo/dispersion/lib/python2.7/site-packages/django_avatar-1.0.5-py2.7.egg/avatar/management/__init__.py", line 9, in create_notice_types
    notification.create_notice_type("avatar_updated", _("Avatar Updated"), _("avatar have been updated"))
AttributeError: 'module' object has no attribute 'create_notice_type'
(dispersion)jorge [~/coders/desarrollo/dispersion] ~> 
(离散)jorge[~/coders/desarrolo/dispersion]~>python2 manage.py验证
python2 manage.py验证
发现0个错误
(分散)豪尔赫[~/coders/desarrolo/dispersion]~>python2 manage.py syncdb
python2 manage.py syncdb
正在创建表。。。
创建表django_注释
创建表django_注释_标志
创建表threadedcomments\u threadedcomments
创建表threadedcomments\u FreeThreadedComments
创建表threadedcomments\u testmodel
创建表通知\u noticetype
创建表通知\u通知设置
创建表通知\u noticequeuebatch
创建表公告\u公告
创建表通知和取消
回溯(最近一次呼叫最后一次):
文件“manage.py”,第10行,在
从命令行(sys.argv)执行命令
文件“/home/jorge/coders/desarrolo/disposition/lib/python2.7/site packages/Django-1.4.3-py2.7.egg/Django/core/management/___init__uu.py”,第443行,从命令行执行
utility.execute()
文件“/home/jorge/coders/desarrollo/disposition/lib/python2.7/site packages/Django-1.4.3-py2.7.egg/Django/core/management/__init___;.py”,执行中第382行
self.fetch_命令(子命令)。从_argv(self.argv)运行_
文件“/home/jorge/coders/desarrolo/disployment/lib/python2.7/site packages/Django-1.4.3-py2.7.egg/Django/core/management/base.py”,第196行,从_argv运行
self.execute(*args,**选项._dict__;
文件“/home/jorge/coders/desarrolo/dispersion/lib/python2.7/site packages/Django-1.4.3-py2.7.egg/Django/core/management/base.py”,第232行,在execute中
输出=self.handle(*args,**选项)
文件“/home/jorge/coders/desarrolo/dispersion/lib/python2.7/site packages/Django-1.4.3-py2.7.egg/Django/core/management/base.py”,第371行,在handle中
返回self.handle\u noargs(**选项)
handle_noargs中的文件“/home/jorge/coders/desarrolo/dispersion/lib/python2.7/site packages/Django-1.4.3-py2.7.egg/Django/core/management/commands/syncdb.py”,第110行
发出后同步信号(创建的模型、冗余、交互、db)
文件“/home/jorge/coders/desarrolo/dispersion/lib/python2.7/site packages/Django-1.4.3-py2.7.egg/Django/core/management/sql.py”,第189行,在发出后同步信号中
交互式=交互式,db=db)
文件“/home/jorge/coders/desarrolo/disposition/lib/python2.7/site packages/Django-1.4.3-py2.7.egg/Django/dispatch/dispatcher.py”,第172行,在send中
响应=接收方(信号=自身,发送方=发送方,**已命名)
文件“/home/jorge/coders/desarrolo/dispersion/lib/python2.7/site packages/django_-avatar-1.0.5-py2.7.egg/avatar/management/__-init__;.py”,第9行,在创建通知类型中
通知。创建通知类型(“头像更新”、“头像更新”)、(“头像已更新”)、(“头像已更新”))
AttributeError:“模块”对象没有属性“创建\u通知\u类型”
(分散)豪尔赫[~/coders/desarrolo/dispersion]~>

奇怪!呵呵?我甚至不知道为什么会发生这种错误。有什么帮助吗?

这是因为django notification的最新版本(位于1.0版)已被重构并从models.py中删除了create\u notice\u type

这很麻烦,因为当前版本的django avatar和django postman依赖于create_notice_type

为了解决这个问题,我必须通过以下方式安装django通知的早期版本:

pip install django-notification==0.2

对,创建通知类型已被删除。 只需创建NoticeType的一个实例,如下所示:

# static block:
try:
    notification = get_app( 'notification' )
except ImproperlyConfigured:
    notification = None
..

# in your method:
if notification is not None and "notification" in settings.INSTALLED_APPS:
from django.utils.translation import ugettext_noop as _

message = {

    'user':     settings.DEFAULT_FROM_EMAIL, 
    'comment':  'no comment', 
    'type':     'welcome', 
    'descr':    'my description',
    # ..
}
try:

    notification.send([to_user], "welcome", message)
except NoticeType.DoesNotExist:
    NoticeType.create("welcome", _("Bla Bla"), _("How nice of you to visit our site"))
    notification.send([to_user], "welcome", message)