Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Django
  • » Django: AssertionError: Signal receivers must accept keyword arguments [RSS Feed]

#1 Май 25, 2009 23:27:30

lizzard
От:
Зарегистрирован: 2009-03-05
Сообщения: 48
Репутация: +  0  -
Профиль   Отправить e-mail  

Django: AssertionError: Signal receivers must accept keyword arguments

Приветствую всех.

Делаю проект по \этому туториалу, но он походу немного устарел, в следствии чего получаю такую ошибку:

$ ./manage.py syncdb
Traceback (most recent call last):
File “./manage.py”, line 11, in <module>
execute_manager(settings)
File “/usr/lib/python2.5/site-packages/django/core/management/__init__.py”, line 359, in execute_manager
utility.execute()
File “/usr/lib/python2.5/site-packages/django/core/management/__init__.py”, line 304, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File “/usr/lib/python2.5/site-packages/django/core/management/base.py”, line 195, in run_from_argv
self.execute(*args, **options.__dict__)
File “/usr/lib/python2.5/site-packages/django/core/management/base.py”, line 221, in execute
self.validate()
File “/usr/lib/python2.5/site-packages/django/core/management/base.py”, line 249, in validate
num_errors = get_validation_errors(s, app)
File “/usr/lib/python2.5/site-packages/django/core/management/validation.py”, line 28, in get_validation_errors
for (app_name, error) in get_app_errors().items():
File “/usr/lib/python2.5/site-packages/django/db/models/loading.py”, line 131, in get_app_errors
self._populate()
File “/usr/lib/python2.5/site-packages/django/db/models/loading.py”, line 58, in _populate
self.load_app(app_name, True)
File “/usr/lib/python2.5/site-packages/django/db/models/loading.py”, line 74, in load_app
models = import_module('.models', app_name)
File “/usr/lib/python2.5/site-packages/django/utils/importlib.py”, line 35, in import_module
__import__(name)
File “/home/lizzard/my/python/gallery_tutorial/myproject/gallery/models.py”, line 55, in <module>
class Photo(models.Model):
File “/usr/lib/python2.5/site-packages/django/db/models/base.py”, line 92, in __new__
new_class.add_to_class(obj_name, obj)
File “/usr/lib/python2.5/site-packages/django/db/models/base.py”, line 210, in add_to_class
value.contribute_to_class(cls, name)
File “/home/lizzard/my/python/gallery_tutorial/myproject/utils/fields.py”, line 204, in contribute_to_class
super(AutoImageField, self).contribute_to_class(cls, name)
File “/usr/lib/python2.5/site-packages/django/db/models/fields/files.py”, line 197, in contribute_to_class
signals.post_delete.connect(self.delete_file, sender=cls)
File “/usr/lib/python2.5/site-packages/django/dispatch/dispatcher.py”, line 85, in connect
“Signal receivers must accept keyword arguments (**kwargs).”
AssertionError: Signal receivers must accept keyword arguments (**kwargs).
Как я понял, ошибка в файле utils/fields.py. В гугле ответа не нашёл на этот вопрос, кроме обсуждения где-то, где говорилось, что где-то эту ошибку исправили в самом django, надо только подождать пока изменения дойдут до основной ветки. Может кто подскажет что можно сделать с этим и почему оно вообще не работает?

Часть кода из utils/fields.py:
....
class AutoImageField(ImageField):
....
def _save(self, instance=None):
if instance == None: # строка 197
return
filename = auto_rename(getattr(instance, self.attname), '%s' % instance._get_pk_val())
setattr(instance, self.attname, filename)
# def _save

def contribute_to_class(self, cls, name):
super(AutoImageField, self).contribute_to_class(cls, name) # строка 204
dispatcher.connect(self._post_init, signals.post_init, sender=cls)
dispatcher.connect(self._save, signals.pre_save, sender=cls)
....
Весь проект закачал на всякий случай сюда - http://depositfiles.com/files/xluzxujlu

З.Ы. Заранее всем спасибо, сильно просьба не пинать, с django только разбираюсь =).



Офлайн

#2 Июнь 4, 2009 09:42:17

Oduvan
От:
Зарегистрирован: 2008-07-19
Сообщения: 60
Репутация: +  0  -
Профиль   Отправить e-mail  

Django: AssertionError: Signal receivers must accept keyword arguments

ну на сколько я понял - то и значит.

в обработчике сигналов последний аргумент должен быть **kwargs



Офлайн

#3 Дек. 25, 2009 06:22:05

tezro
От:
Зарегистрирован: 2009-12-09
Сообщения: 90
Репутация: +  0  -
Профиль   Отправить e-mail  

Django: AssertionError: Signal receivers must accept keyword arguments

Если решилось, то как? Не думаю, что ошибка была в django fields.



Офлайн

  • Начало
  • » Django
  • » Django: AssertionError: Signal receivers must accept keyword arguments[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version