У меня есть проект Django, и на одной из веб-страниц я хочу собрать некоторую информацию для проекта.Python Django- get или post?
В одном из полей имеется выпадающий список, из которого пользователь может выбрать имя члена команды, участвующей в проекте. В этом выпадающем списке есть ряд предопределенных вариантов, а также опция «Другое».
Если пользователь выбирает «другое», поле «выпадающий список» изменяется на «текстовое поле», и пользователь может ввести имя человека, которого они хотят выбрать. Когда они начинают печатать, база данных запрашивается на основе букв, которые они набрали до сих пор, и список доступных параметров (соответствующих введенным буквам) отображается под текстовым полем. Например, если пользователь набрал «D», список доступных опций, которые будут отображаться, может включать в себя: «Дэн», «Дэйв», «Дебби», но если они набрали «Да», список доступных опций который будет отображаться, будет включать только: «Дэн» & «Дейв».
Когда пользователь сначала загружает эту страницу в проект, поле «имя» пуст. Когда я начинаю печатать в этой области, и выберите опцию из списка доступных опций, которые отображаются в консоли браузера показывает мне ошибку, которая говорит:
jquery-2.2.2.min.js:4 POST http://localhost:8000/projects/5915/submit_3_5_ajax/ 500 (Internal Server Error)
Я думал, что это может означать, что я с помощью неправильный метод, но я попытался использовать как Get
& Post
, и они оба дают ту же ошибку в консоли браузера ...
консоль питона также показывает эту ошибку:
ValueError: invalid literal for int() with base 10: ''
[10/Nov/2016 14:05:38] "POST /projects/5915/submit_3_5_ajax/ HTTP/1.1" 500 21537
в е ар, как я могу сказать, исключение происходит где-то внутри класса формы в моем forms.py
файле:
class InfoForm(ValidatedForm):
...
def __init__(self, *args, **kwargs):
...
try:
who_will_organise = project.assigned.get(role=Role.O).employee.first_name + project.assigned.get(role=Role.O).employee.surname[0] # I just want to get the first character of the surname here...
except ObjectDoesNotExist: who_will_organise = None
...
def save(self, commit=True):
...
if data['who_will_organise']:
...
else:
# The print statements I'm seeing in the console would indicate that this is where the exception is being thrown...
who_will_organise = Employee.objects.get(id=data['who_will_organise'])
try:
...
except ...
...
...
return ...
URL-адрес для страницы:
url(r'^(?P<project_id>\d+)/survey/$', views.survey, name='survey'),
и view
, что это призвание определяется :
def survey(request, project_id):
project = Project.objects.get(id=project_id)
survey = Survey.objects.get_or_create(project=project)[0]
context = {
'project': project,
'survey_form': SurveyInformationForm(instance=survey),
}
return render(request, 'projects/survey.html', context)
Моя консоль браузер отображает следующие сообщения об ошибках:
POST http://localhost:8000/projects/5915/submit_3_5_ajax/ 500 (Internal Server Error)
autosave_form.js:122 FAIL:(){return f&&(c&&!b&&(h=f.length-1,g.push(c)),function d(b){n.each(b,function(b,c){n.isFunction(c)?a.unique&&j.has(c)||f.push(c):c&&c.length&&"string"!==n.type(c)&&d(c)})}(arguments),c&&!b&&i…
FAIL:(){return f&&(c&&!b&&(h=f.length-1,g.push(c)),function d(b){n.each(b,function(b,c){n.isFunction(c)?a.unique&&j.has(c)||f.push(c):c&&c.length&&"string"!==n.type(c)&&d(c)})}(arguments),c&&!b&&i…
В консоли Python в моей командной строке, где я бегу сервер Python, я получаю сообщение об ошибке:
OperationalError: (1054, "Unknown column 'costing_addomit.group_id' in 'field list'")
[10/Nov/2016 15:01:24] "GET /projects/pipeline/ HTTP/1.1" 500 337434
Может кто-нибудь указать мне, что я делаю неправильно здесь?
Не с деталью, которую вы указали; и непонятно, почему вы думаете, что это связано с получением сообщения vs. Вам нужно будет показать свои URL-адреса.py, view и полную ошибку, как показано на вкладке «Инструменты разработчика» браузера dev. –
Извинения. Я добавил URL-адрес и посмотрю на вопрос. – someone2088
URL-адрес, который вы публикуете, не содержит «.../survey/...» в нем ... – Javier