Форум программистов, компьютерный форум, киберфорум
Python: Web
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
2 / 2 / 0
Регистрация: 15.06.2013
Сообщений: 49

Ajax post request error

18.05.2014, 11:52. Показов 1745. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Проблема такая: пытаюсь настроить отправку комментариев к посту посредством аякса
views.py:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
from django.shortcuts import render
from django.http.response import HttpResponse, Http404
from django.template.loader import get_template
from django.template import Context
from django.shortcuts import render_to_response, redirect
from article.models import Article, Comments
from django.core.exceptions import ObjectDoesNotExist
from forms import CommentForm
from django.core.context_processors import csrf
from django_ajax.decorators import ajax
from django.views.decorators.csrf import ensure_csrf_cookie
...
 
@ajax
@ensure_csrf_cookie
def add_comment(request, id):
    if request.POST:
        form = CommentForm(request.POST)
        if form.is_valid():
            comment = form.save(commit=False)
            comment.article = Article.objects.get(id=id)
            form.save()
    return comment.text
...
js:
JavaScript
1
2
var form = $('form').serializeArray()
$.post("/articles/1/add_comment", form).success(function(data) { console.log(data.content) });
проблема в том, что запрос проходит, запись добавляется в бд, но ответом вот такой traceback приходит:
AttributeError
'Comments' object has no attribute 'set_cookie'

Django Version: 1.6.2
Python Executable: /usr/bin/python
Python Version: 2.7.6
Python Path: ['/media/twizty/CA3EE3A73EE38AB1/django_learn/first_app', '/usr/local/lib/python2.7/dist-packages/setuptools-3.6-py2.7.egg', '/usr/lib/python2.7/dist-packages', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages/PILcompat', '/usr/lib/python2.7/dist-packages/gtk-2.0', '/usr/lib/python2.7/dist-packages/ubuntu-sso-client', '/usr/lib/python2.7/dist-packages/ubuntuone-client', '/usr/lib/python2.7/dist-packages/ubuntuone-control-panel', '/usr/lib/python2.7/dist-packages/ubuntuone-storage-protocol', '/usr/lib/python2.7/dist-packages/wx-2.8-gtk2-unicode']
Server time: Вск, 18 Май 2014 07:35:16 +0000
Installed Applications:
('django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django_ajax',
'article')
Installed Middleware:
('django.contrib.sessions.middleware.Ses sionMiddleware',
'django.middleware.common.CommonMiddlewa re',
'django.middleware.csrf.CsrfViewMiddlewa re',
'django.contrib.auth.middleware.Authenti cationMiddleware',
'django.contrib.messages.middleware.Mess ageMiddleware',
'django.middleware.clickjacking.XFrameOp tionsMiddleware')

Traceback:
File "/usr/local/lib/python2.7/dist-packages/django_ajax/decorators.py" in inner
68. return render_to_json(func(request, *args, **kwargs))
File "/usr/local/lib/python2.7/dist-packages/django/utils/decorators.py" in _wrapped_view
116. return middleware.process_response(request, response)
File "/usr/local/lib/python2.7/dist-packages/django/middleware/csrf.py" in process_response
197. response.set_cookie(settings.CSRF_COOKIE _NAME,

Exception Type: AttributeError
Exception Value: 'Comments' object has no attribute 'set_cookie'
Request data not supplied

Settings:
Using settings module first_app.settings
USE_L10N = True
USE_THOUSAND_SEPARATOR = False
CSRF_COOKIE_SECURE = False
LANGUAGE_CODE = 'ru-RU'
ROOT_URLCONF = 'first_app.urls'
MANAGERS =
BASE_DIR = '/media/twizty/CA3EE3A73EE38AB1/django_learn/first_app'
DEFAULT_CHARSET = 'utf-8'
SESSION_SERIALIZER = 'django.contrib.sessions.serializers.JSO NSerializer'
STATIC_ROOT = None
ALLOWED_HOSTS = []
MESSAGE_STORAGE = 'django.contrib.messages.storage.fallbac k.FallbackStorage'
EMAIL_SUBJECT_PREFIX = '[Django] '
FILE_UPLOAD_PERMISSIONS = None
STATICFILES_FINDERS =
SESSION_CACHE_ALIAS = 'default'
SESSION_COOKIE_DOMAIN = None
SESSION_COOKIE_NAME = 'sessionid'
ADMIN_FOR =
TIME_INPUT_FORMATS =
DATABASES = {'default': {'ENGINE': 'django.db.backends.sqlite3', 'AUTOCOMMIT': True, 'ATOMIC_REQUESTS': False, 'NAME': '/media/twizty/CA3EE3A73EE38AB1/django_learn/first_app/our_db.sqlite3', 'TEST_MIRROR': None, 'OPTIONS': {}, 'CONN_MAX_AGE': 0, 'TIME_ZONE': 'UTC', 'TEST_COLLATION': None, 'TEST_CHARSET': None, 'HOST': '', 'USER': '', 'TEST_NAME': None, 'PASSWORD': u'********************', 'PORT': ''}}
SERVER_EMAIL = 'root@localhost'
FILE_UPLOAD_HANDLERS =
DEFAULT_CONTENT_TYPE = 'text/html'
APPEND_SLASH = True
FIRST_DAY_OF_WEEK = 0
DATABASE_ROUTERS = []
YEAR_MONTH_FORMAT = 'F Y'
STATICFILES_STORAGE = 'django.contrib.staticfiles.storage.Stat icFilesStorage'
CACHES = {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMe mCache'}}
SESSION_COOKIE_PATH = '/'
MIDDLEWARE_CLASSES =
USE_I18N = True
THOUSAND_SEPARATOR = ','
SECRET_KEY = u'********************'
LANGUAGE_COOKIE_NAME = 'django_language'
DEFAULT_INDEX_TABLESPACE = ''
TRANSACTIONS_MANAGED = False
LOGGING_CONFIG = 'django.utils.log.dictConfig'
SEND_BROKEN_LINK_EMAILS = False
TEMPLATE_LOADERS =
WSGI_APPLICATION = 'first_app.wsgi.application'
TEMPLATE_DEBUG = True
X_FRAME_OPTIONS = 'SAMEORIGIN'
CSRF_COOKIE_NAME = 'csrftoken'
FORCE_SCRIPT_NAME = None
USE_X_FORWARDED_HOST = False
SIGNING_BACKEND = 'django.core.signing.TimestampSigner'
SESSION_COOKIE_SECURE = False
CSRF_COOKIE_DOMAIN = None
FILE_CHARSET = 'utf-8'
DEBUG = True
SESSION_FILE_PATH = None
DEFAULT_FILE_STORAGE = 'django.core.files.storage.FileSystemSto rage'
INSTALLED_APPS =
LANGUAGES =
COMMENTS_ALLOW_PROFANITIES = False
STATICFILES_DIRS =
PREPEND_WWW = False
SECURE_PROXY_SSL_HEADER = None
SESSION_COOKIE_HTTPONLY = True
DEBUG_PROPAGATE_EXCEPTIONS = False
MONTH_DAY_FORMAT = 'F j'
LOGIN_URL = '/accounts/login/'
SESSION_EXPIRE_AT_BROWSER_CLOSE = False
TIME_FORMAT = 'P'
AUTH_USER_MODEL = 'auth.User'
DATE_INPUT_FORMATS =
AUTHENTICATION_BACKENDS = 'django.contrib.auth.backends.ModelBacke nd'
EMAIL_HOST_PASSWORD = u'********************'
PASSWORD_RESET_TIMEOUT_DAYS = u'********************'
CACHE_MIDDLEWARE_ALIAS = 'default'
SESSION_SAVE_EVERY_REQUEST = False
NUMBER_GROUPING = 0
SESSION_ENGINE = 'django.contrib.sessions.backends.db'
CSRF_FAILURE_VIEW = 'django.views.csrf.csrf_failure'
CSRF_COOKIE_PATH = '/'
LOGIN_REDIRECT_URL = '/accounts/profile/'
DECIMAL_SEPARATOR = '.'
IGNORABLE_404_URLS =
LOCALE_PATHS =
TEMPLATE_STRING_IF_INVALID = ''
LOGOUT_URL = '/accounts/logout/'
EMAIL_USE_TLS = False
FIXTURE_DIRS =
EMAIL_HOST = 'localhost'
DATE_FORMAT = 'N j, Y'
MEDIA_ROOT = ''
DEFAULT_EXCEPTION_REPORTER_FILTER = 'django.views.debug.SafeExceptionReporte rFilter'
ADMINS =
FORMAT_MODULE_PATH = None
DEFAULT_FROM_EMAIL = 'webmaster@localhost'
MEDIA_URL = ''
DATETIME_FORMAT = 'N j, Y, P'
TEMPLATE_DIRS =
DISALLOWED_USER_AGENTS =
ALLOWED_INCLUDE_ROOTS =
LOGGING = {}
SHORT_DATE_FORMAT = 'm/d/Y'
TEST_RUNNER = 'django.test.runner.DiscoverRunner'
CACHE_MIDDLEWARE_KEY_PREFIX = u'********************'
TIME_ZONE = 'UTC'
FILE_UPLOAD_MAX_MEMORY_SIZE = 2621440
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBac kend'
DEFAULT_TABLESPACE = ''
TEMPLATE_CONTEXT_PROCESSORS =
SESSION_COOKIE_AGE = 1209600
SETTINGS_MODULE = 'first_app.settings'
USE_ETAGS = False
LANGUAGES_BIDI =
FILE_UPLOAD_TEMP_DIR = None
INTERNAL_IPS =
STATIC_URL = '/static/'
EMAIL_PORT = 25
USE_TZ = True
SHORT_DATETIME_FORMAT = 'm/d/Y P'
PASSWORD_HASHERS = u'********************'
ABSOLUTE_URL_OVERRIDES = {}
CACHE_MIDDLEWARE_SECONDS = 600
CSRF_COOKIE_HTTPONLY = False
DATETIME_INPUT_FORMATS =
EMAIL_HOST_USER = ''
PROFANITIES_LIST = u'********************'

You're seeing this error because you have DEBUG = True in your
Django settings file. Change that to False, and Django will
display a standard 500 page.


Я так понимаю, надо задавать куки в ответе, но как это сделать? Прошу помощи.

Добавлено через 15 минут
Извиняюсь, сам дурак, как говорится, я просто неправильно возвращал ответ.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.05.2014, 11:52
Ответы с готовыми решениями:

Request.Response ошибка 400 bad request
Добрый день! Прошу помочь с обработкой запросов в Python 2.7.11 Принимать реквест и сохранить на сервере файл из него уже...

A request to the Telegram API was unsuccessful. Error code: 400. Description: Bad Request: user not found
В общем в чем суть бота - я пишу команду /checkprivacy и бот должен узнавать все user_id всех пользователей в группе, а потом выводить, тех...

Нужно поработать с запросом request.post(.)
Пользователь Рыжий Лис натолкнул меня на решение проблемы здесь - https://www.cyberforum.ru/python/thread2383066.html. Но что мне нужно...

1
 Аватар для Kilowat
3 / 3 / 0
Регистрация: 13.04.2011
Сообщений: 64
31.10.2014, 21:05
Если я не ошибаюсь то
return comment.text
изменить на return HttpResponse(comment.text)
тогда может правильно будет
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
31.10.2014, 21:05
Помогаю со студенческими работами здесь

Формы в Django. Обработать несколько значений, пришедших из request.POST
У меня есть 3 связанные таблицы: Тесты→Вопросы_тестов→Ответы_на_вопросы Связь один-ко-многим. Вот формы для работы с этими...

Requests: Как передать в post запрос request payload данные
Хочу получить ответ на post запрос. В запросе есть (см. вложение) request payload dataraw={ "take": "40", ...

Django formset не проходит валидацию, не правильно инициализируется через self.request.POST
уважаемые форумчане. Возникла проблема с формсетом. Когда приходит пост запрос, формсет созданный на основе self.request.POST не проходит...

A request to the Telegram API was unsuccessful. Error code: 409
При написании простого бота import telebot bot = telebot.TeleBot('мой токен') @bot.message_handler(commands=) def...

Telebot.apihelper.ApiTelegramException: A request to the Telegram API was unsuccessful. Error code: 409
добрый день, пытаюсь написать простейшего бота для телеграм import telebot bot = telebot.TeleBot(TOKEN) ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru