|
0 / 0 / 0
Регистрация: 26.09.2013
Сообщений: 15
|
||||||||||||||||||||||||||
Получить данные, введенные пользователем29.03.2014, 11:35. Показов 10888. Ответов 10
Метки нет (Все метки)
Доброго времени суток!
Есть вопросы по поводу того, как работать с данными введенными пользователем. Опишу всю задачу, т.к. может вообще не в том направлении двигаюсь. Результат хочу получить такой: страница со списком товаров (количество постоянное, примерно 20 товаров). Все стандартно, название, описание, пикча, прайс и поле ввода для количества. Пользователь вводит количество и получает сумму, которую должен заплатить (тож все просто прайс * на его количество). Вот он вводит необходимое коичество в, допустим 5 товаров из 20. Есть "сабмит", по клику на который, пользователь получает excel в виде счета с его 5 позицями. Все. Остановился, можно сказать, в самом начале. ))) models.py
1) Ну самое первое это метод получения значения. Читал на замечательном djbook.ru, что доступиться к данным можно через cleaned_data, но безуспешно. (( 2) Есть ли возможность в django (python) выполнения метода без клика по "сабмиту", а после введения значения, получить множество (количество * прайс) сразу при вводе (что-то аналогичное setInterval в JS). 3) Вот когда я все-таки получу значение введенное пользователем и настанет момент истины и мне придется его умножать на прайс нужного мне товара, мне нужен будет объект экземпляра именно этого товара. Вот тут мне хочется переписать views.py вместо Product.objects.all() присвоить Product(). Но как тогда все товары вывести на страницу. В общем сами видите, у меня в голове все смешалось. Если Вам не лень, помогите собрать оставшиеся мозги в кучу. )))
0
|
||||||||||||||||||||||||||
| 29.03.2014, 11:35 | |
|
Ответы с готовыми решениями:
10
Сохранять введенные данные |
|
55 / 55 / 16
Регистрация: 25.03.2013
Сообщений: 178
|
||||||
| 29.03.2014, 16:26 | ||||||
|
а что будет выдавать такой вариант в консоль?
0
|
||||||
|
0 / 0 / 0
Регистрация: 26.09.2013
Сообщений: 15
|
|
| 29.03.2014, 17:00 [ТС] | |
|
Будет ругаться, что я неправильно использую словарь.
На самом деле, я новичок в программировании (иначе бы таких нубских вопросов не задавал). Но пост, на сколько понимаю, всегда пишет в БД. Если не прав, поправьте.
0
|
|
|
55 / 55 / 16
Регистрация: 25.03.2013
Сообщений: 178
|
|
| 29.03.2014, 17:25 | |
|
dsptd, ну так-то и через get делать запись в бд никто не запрещает, просто это небезопасно я так понимаю. а как именно ругается если принт ставите?
Добавлено через 11 минут И если мы не будем создавать новую запись в некой таблице нашей бд (т.е. нашей модели джанго), то мы и через пост ничего не запишем. Я сам новичок, сам пытаюсь разобраться
0
|
|
|
0 / 0 / 0
Регистрация: 26.09.2013
Сообщений: 15
|
|
| 29.03.2014, 17:37 [ТС] | |
|
0
|
|
|
55 / 55 / 16
Регистрация: 25.03.2013
Сообщений: 178
|
|
| 29.03.2014, 19:05 | |
|
dsptd, ну батенька это оффтоп, а по существу - вот вы вставили проверку валидации формы и вывод чистых данных в консоль, и что он выводит? какая ошибка(название ошибки, код и т.д.)? а лучше сразу трэйсбэк.
0
|
|
|
0 / 0 / 0
Регистрация: 26.09.2013
Сообщений: 15
|
|
| 29.03.2014, 19:56 [ТС] | |
|
М-де.
Я его со скобочками писал, как и все функции или методы, поэтому получал: Traceback: File "/usr/local/lib/python3.3/dist-packages/django/core/handlers/base.py" in get_response 114. response = wrapped_callback(request, *callback_args, **callback_kwargs) File "/home/******/local/test/********/myapp/views.py" in product 20. n = (form.cleaned_data()) Exception Type: TypeError at /myapp/product/ Exception Value: 'dict' object is not callable Добавлено через 18 минут Да. Через консольку все выходит. **************************************** ********** python manage.py shell Python 3.3.2+ (default, Feb 28 2014, 00:52:16) [GCC 4.8.1] on linux Type "help", "copyright", "credits" or "license" for more information. (InteractiveConsole) >>> from myapp.forms import Quantity >>> data = {'number': 5} >>> f = Quantity(data) >>> f.is_valid() True >>> f.cleaned_data {'number': 5} >>>
0
|
|
|
55 / 55 / 16
Регистрация: 25.03.2013
Сообщений: 178
|
|
| 29.03.2014, 20:03 | |
|
dsptd, т.е. form.cleaned_data прокатывает и вы просто скобки ненужные ставили? тогда у вас первый пункт решен.
насчет третьего пункта - никто не запрещает вам делать два запроса: один будет получать все продукты, а второй будет получать продукт через Product.objects.get() (например по id, но тогда этот id нужно в форме передавать скрытым полем...наверное...откуда-то же он должен его брать)....т.е. проблемы здесь нет...ну если я вас правильно понял.
1
|
|
|
0 / 0 / 0
Регистрация: 26.09.2013
Сообщений: 15
|
|||||||||||
| 29.03.2014, 20:43 [ТС] | |||||||||||
|
В итоге вот как поменял в представлении:
views.py
product.html
Добавлено через 11 минут Zarex, спасибо за уделенное время. По поводу object.get(id) - гут пойнт, но я пока слабо представляю, как его получить. Ушел читать учебник, как что-нибудь выварю или уткнусь в стену опять, напишу. Хорошего кодинга!
0
|
|||||||||||
|
842 / 480 / 58
Регистрация: 18.09.2012
Сообщений: 1,688
|
|||
| 30.03.2014, 03:46 | |||
|
1) Имеет ограничения на длинну 2) Его трудное защитить( если вообще можно) Добавлено через 41 секунду А если вы файл принимает в POST запросе, вы его тоже в БД будете пихать? Добавлено через 40 секунд Или авторизация пользователя? Вообще ребят, курим основы веб-технологий, они ой как пригодяться....
1
|
|||
|
0 / 0 / 0
Регистрация: 26.09.2013
Сообщений: 15
|
|
| 30.03.2014, 04:34 [ТС] | |
|
Wolkodav, спасибо!
Да уж. Вы правы. )))
0
|
|
| 30.03.2014, 04:34 | |
|
Помогаю со студенческими работами здесь
11
Как распределить введенные данные Как сохранить данные, введённые в tkinter.Enter? Как вывести введенные данные с админки на HTML страницу? Как открывать введённые данные пользователя при следующем заходе? Введённые данные в консоль по итогу стирают все пробелы, как добавить возможность пробелов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
Киев стоит - украинская песня
zorxor 28.01.2026
wfWdiRqdTxc
О Господи, Вечный, Ты . . .
Я помоги, Бесконечный. . .
Я прошу Ты. . .
Я погибаю, спаси. . .
Я прошу Тебя Вечный. . .
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога
SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
|
|
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога
Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д.
Сборка примера
Скачайте. . .
|