Проблема :
Когда я отправляю форму, Flask ведет журнал следующее:
Код: Выделить всё
DEBUG - Raw Form Data: {'title': '1', 'class_id': 'undefined', 'description': '1'}
ERROR - Validation failed: Invalid or missing class_id
Код: Выделить всё
create_examКод: Выделить всё
@main.route('/create_exam', methods=['POST'])
@login_required
def create_exam():
if current_user.role != 'teacher':
return jsonify({'error': 'Unauthorized'}), 403
logger.debug(f"Raw Form Data: {dict(request.form)}")
title = request.form.get('title')
class_id = request.form.get('class_id')
description = request.form.get('description')
logger.debug(f"Received Exam Data - Title: {title}, Class ID: {class_id}, Description: {description}")
if not class_id or class_id.strip().lower() in ["undefined", "null", "none", ""]:
logger.error(f"Validation failed: Invalid or missing class_id. Received: {class_id}")
return jsonify({'error': 'A valid class ID is required'}), 400
try:
class_id = int(class_id)
except ValueError:
return jsonify({'error': 'Class ID must be a valid number'}), 400
class_entry = Class.query.get(class_id)
if not class_entry:
return jsonify({'error': 'Invalid class or unauthorized access'}), 403
try:
exam = Exam(title=title, class_id=class_id, description=description, teacher_id=current_user.id)
db.session.add(exam)
db.session.commit()
return jsonify({'message': 'Exam created successfully'}), 201
except Exception as e:
db.session.rollback()
return jsonify({'error': 'Failed to create exam'}), 500
< /code>
[b] html form < /strong> < /h3>
Exam Title
Select Class
{% if class_codes %}
Select a class
{% for class_code in class_codes %}
{{ class_code.code }}
{% endfor %}
{% else %}
No class codes available
{% endif %}
Create Exam
< /code>
javascript (извлечение кодов классов и подчинения отладки) < /strong> < /h3>
document.addEventListener("DOMContentLoaded", function () {
const classSelect = document.getElementById("class_id");
fetch("/get_class_codes")
.then(response => response.json())
.then(data => {
console.log("[DEBUG] Received class codes:", data);
if (classSelect.options.length
Подробнее здесь: [url]https://stackoverflow.com/questions/79464612/flask-form-submission-class-id-is-undefined-when-creating-an-exam[/url]
Мобильная версия