2010-11-29 2 views
0

Кажется, я получаю TypeError ('message' - недопустимый аргумент ключевого слова для этой функции) каждый раз, когда я пытаюсь добавить что-то в БД через интерфейс администратора Django. Объект добавляется, но это исключение возникает. Может быть, это связано с тем, что у меня есть модель под названием «Сообщение»?Является ли «сообщение» зарезервированным словом в Django или Python?

+1

Не могли бы вы опубликовать отслеживающий пожалуйста –

+0

http://pastebin.com/YUMSGCXi – adrianp

ответ

5

№ Сохраненные слова Python не содержат сообщения, а описанный TypeError не предполагает столкновения пространства имен. Посмотрите на аргументы ключевых слов функции и убедитесь, что среди них есть message. Это не так, поэтому, возможно, вы хотели набрать msg.

+0

вещь я получаю это для любой функции, которая добавляет объекты в БД – adrianp

+0

@adrianp - это значит, что ни одна из этих функций не имеют 'сообщение 'ключевой аргумент. – aaronasterling

3

При попытке присвоить значение зарезервированным ключевым словам, SyntaxError будет поднят.

1

Это означает, что функция, которую вы вызываете, не принимает аргумент с именем «сообщение».

Я предполагаю, что это потому, что модель вашего используете не имеет поле с именем «сообщение»

1

Этот пример показывает, что другие уже указывали.

>>> def hello(msg): 
...  print "Hello, ", msg  
... 
>>> hello("world") 
Hello, world 
>>> hello(msg="world") 
Hello, world 
>>> hello(message="world") 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
TypeError: hello() got an unexpected keyword argument 'message' 
0

Я верю сообщение | сообщения - это зарезервированное слово! Ниже мой фрагмент кода:

messages = page.object_list 
variables = RequestContext(request, { 
    'messages': messages, 
    'show_paginator': paginator.num_pages > 1, 
    'has_prev': page.has_previous(), 
    'has_next': page.has_next(), 
    'page': page_number, 
    'pages': paginator.num_pages, 
    'next_page': page_number + 1, 
    'prev_page': page_number - 1 
}) 
return render_to_response('user_page.html', variables) 

Проблема возникает, когда я проверить список сообщений в user_page.html. По какой-то причине проверка {% if messages%} всегда будет возвращать значение false, даже если этот список заполнен. В тот же момент, когда я изменил имена переменных, они работали по назначению. Я не нашел никаких документов, подтверждающих это, все, что я знаю, это то, что я ударил головой в течение 1,5 дней, чтобы случайно определить его.

Смежные вопросы