Является ли «сообщение» зарезервированным словом в Django или Python? - PullRequest
0 голосов
/ 29 ноября 2010

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

Ответы [ 6 ]

5 голосов
/ 29 ноября 2010

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

3 голосов
/ 29 ноября 2010

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

1 голос
/ 30 ноября 2010

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

>>> 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'
1 голос
/ 29 ноября 2010

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

Полагаю, это потому, что используемая модель не имеет поля с именем "message"

0 голосов
/ 08 июля 2012

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

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 дней, пока случайно не выяснил это.

0 голосов
/ 30 ноября 2010

Кажется, мне не хватало директив для Django-среды сообщений в моем settings.pyВ любом случае, спасибо за ответы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...