Ich habe ein Problem beim Versuch, Daten in einer Tabelle anzuzeigen. Die Daten werden abgerufen und in den Protokollen korrekt angezeigt, sie werden jedoch nicht in der Frontend-Tabelle angezeigt.
Dies ist die Tabelle:
@app.route('/advising', methods=['GET', 'POST'])
@login_required
def advising():
logger.debug(f"Advising route accessed by user {current_user.id}")
# Authorization Check
if current_user.user_type_ID != 1:
flash('Access denied. You are not an advisor.', 'error')
return redirect(url_for('dashboard'))
try:
# Fetch advisor details
advisor_id = functions.get_advisor_id(current_user.id)
logger.debug(f"Fetched advisor ID: {advisor_id}")
if not advisor_id:
flash('Advisor ID not found. Please try again.', 'error')
return redirect(url_for('dashboard'))
advisor_info = functions.fetch_advisor_info(advisor_id)
logger.debug(f"Fetched advisor info: {advisor_info}")
if not advisor_info:
flash('Unable to load advisor information. Please contact support.', 'error')
return redirect(url_for('dashboard'))
# Initialize context variables
student_info = None
gpa_deficit = 0
probation_status = False
consecutive_semesters = 0
transcript = None
recommended_courses = None
# Handle student search
if request.method == 'POST' and 'search_student' in request.form:
student_id = request.form.get('student_id')
logger.debug(f"Received student search request with student_ID: {student_id}")
if student_id:
try:
# Resolve student_ID to user_ID
user_id = functions.get_user_id_from_student_id(student_id)
if not user_id:
logger.warning(f"No user_ID found for student_ID: {student_id}")
flash(f"Student with ID {student_id} not found.", 'error')
else:
# Fetch student info using user_ID
student_info = functions.fetch_student_info_by_id(user_id)
logger.debug(f"Fetched student info for user_ID {user_id}: {student_info}")
if student_info:
# Fetch additional student data
gpa_deficit = functions.calculate_gpa_deficit(user_id)
logger.debug(f"GPA Deficit: {gpa_deficit}")
con_sem = functions.probation_semesters_count(user_id)
logger.debug(f"Consecutive semesters on probation: {con_sem}")
probation_status = functions.check_probation_status(user_id, con_sem)
logger.debug(f"Probation Status: {probation_status}")
consecutive_semesters = functions.count_consecutive_probation_semesters(user_id)
logger.debug(f"Consecutive Semesters on Probation: {consecutive_semesters}")
transcript = functions.fetch_student_transcript(user_id)
logger.debug(f"Fetched transcript: {transcript}")
sttran = functions.student_transcript(user_id)
logger.debug(f"Fetched sttran: {sttran}")
# Validate transcript structure
if not isinstance(sttran, list):
logger.error("Transcript is not a list. Invalid structure.")
raise ValueError("Transcript data is not in expected format.")
# Ensure every item in the transcript is a dictionary
sttran = [
course for course in sttran
if isinstance(course, dict) and 'grade' in course and 'course_code' in course
]
# Filter transcript data
filtered = [
course for course in sttran
if course['grade'] not in ['W', 'P', 'F', 'FA', 'I']
]
completed_courses = [course['course_code'] for course in filtered]
completed_course_types = {
course['course_type']: completed_courses.count(course['course_type'])
for course in filtered
}
recommended_courses = functions.recommend_courses(
user_id,
student_info['cumulative_gpa'],
completed_courses,
completed_course_types,
probation_status,
con_sem
)
logger.debug(f"Fetched recommended courses: {recommended_courses}")
else:
logger.warning(f"No data found for user_ID: {user_id}")
flash(f"Student with ID {student_id} not found.", 'error')
except Exception as e:
logger.error(f"Error during student search for student_ID {student_id}: {str(e)}", exc_info=True)
flash("An error occurred while searching for the student.", "error")
# Fetch availability slots for advisor
advisor_slots = functions.fetch_availability_slots(advisor_id)
logger.debug(f"Fetched advisor slots: {advisor_slots}")
# Render the page with all required context
return render_template(
'advising.html',
advisor_info=advisor_info,
advisor_slots=advisor_slots,
student_info=student_info,
gpa_deficit=gpa_deficit,
probation_status=probation_status,
consecutive_semesters=consecutive_semesters,
transcript=transcript,
recommended_courses=recommended_courses,
)
except Exception as e:
logger.error(f"Unexpected error in advising route: {str(e)}", exc_info=True)
flash('An error occurred while loading the advising page. Please try again later.', 'error')
return redirect(url_for('dashboard'))
Wenn ich {{ empfohlene Kurse }} zum Debuggen hinzufüge, werden die Rohdaten im Frontend angezeigt. Die Tabelle selbst bleibt jedoch leer. Was könnte dieses Problem verursachen?
Ich habe ein Problem beim Versuch, Daten in einer Tabelle anzuzeigen. Die Daten werden abgerufen und in den Protokollen korrekt angezeigt, sie werden jedoch nicht in der Frontend-Tabelle angezeigt. Dies ist die Tabelle: [code]
{% else %} No recommended courses available. {% endif %} ` [/code] Dies ist die Route: [code]@app.route('/advising', methods=['GET', 'POST']) @login_required def advising(): logger.debug(f"Advising route accessed by user {current_user.id}")
# Authorization Check if current_user.user_type_ID != 1: flash('Access denied. You are not an advisor.', 'error') return redirect(url_for('dashboard'))
try: # Fetch advisor details advisor_id = functions.get_advisor_id(current_user.id) logger.debug(f"Fetched advisor ID: {advisor_id}") if not advisor_id: flash('Advisor ID not found. Please try again.', 'error') return redirect(url_for('dashboard'))
advisor_info = functions.fetch_advisor_info(advisor_id) logger.debug(f"Fetched advisor info: {advisor_info}") if not advisor_info: flash('Unable to load advisor information. Please contact support.', 'error') return redirect(url_for('dashboard'))
# Handle student search if request.method == 'POST' and 'search_student' in request.form: student_id = request.form.get('student_id') logger.debug(f"Received student search request with student_ID: {student_id}") if student_id: try: # Resolve student_ID to user_ID user_id = functions.get_user_id_from_student_id(student_id) if not user_id: logger.warning(f"No user_ID found for student_ID: {student_id}") flash(f"Student with ID {student_id} not found.", 'error') else: # Fetch student info using user_ID student_info = functions.fetch_student_info_by_id(user_id) logger.debug(f"Fetched student info for user_ID {user_id}: {student_info}") if student_info: # Fetch additional student data gpa_deficit = functions.calculate_gpa_deficit(user_id) logger.debug(f"GPA Deficit: {gpa_deficit}") con_sem = functions.probation_semesters_count(user_id) logger.debug(f"Consecutive semesters on probation: {con_sem}") probation_status = functions.check_probation_status(user_id, con_sem) logger.debug(f"Probation Status: {probation_status}") consecutive_semesters = functions.count_consecutive_probation_semesters(user_id) logger.debug(f"Consecutive Semesters on Probation: {consecutive_semesters}") transcript = functions.fetch_student_transcript(user_id) logger.debug(f"Fetched transcript: {transcript}") sttran = functions.student_transcript(user_id) logger.debug(f"Fetched sttran: {sttran}")
# Validate transcript structure if not isinstance(sttran, list): logger.error("Transcript is not a list. Invalid structure.") raise ValueError("Transcript data is not in expected format.")
# Ensure every item in the transcript is a dictionary sttran = [ course for course in sttran if isinstance(course, dict) and 'grade' in course and 'course_code' in course ]
# Filter transcript data filtered = [ course for course in sttran if course['grade'] not in ['W', 'P', 'F', 'FA', 'I'] ] completed_courses = [course['course_code'] for course in filtered] completed_course_types = { course['course_type']: completed_courses.count(course['course_type']) for course in filtered } recommended_courses = functions.recommend_courses( user_id, student_info['cumulative_gpa'], completed_courses, completed_course_types, probation_status, con_sem ) logger.debug(f"Fetched recommended courses: {recommended_courses}") else: logger.warning(f"No data found for user_ID: {user_id}") flash(f"Student with ID {student_id} not found.", 'error') except Exception as e: logger.error(f"Error during student search for student_ID {student_id}: {str(e)}", exc_info=True) flash("An error occurred while searching for the student.", "error")
# Render the page with all required context return render_template( 'advising.html', advisor_info=advisor_info, advisor_slots=advisor_slots, student_info=student_info, gpa_deficit=gpa_deficit, probation_status=probation_status, consecutive_semesters=consecutive_semesters, transcript=transcript, recommended_courses=recommended_courses, )
except Exception as e: logger.error(f"Unexpected error in advising route: {str(e)}", exc_info=True) flash('An error occurred while loading the advising page. Please try again later.', 'error') return redirect(url_for('dashboard')) [/code] [code] Debug: {{ recommended_courses }} [/code] Wenn ich {{ empfohlene Kurse }} zum Debuggen hinzufüge, werden die Rohdaten im Frontend angezeigt. Die Tabelle selbst bleibt jedoch leer. Was könnte dieses Problem verursachen?
Ich versuche, einen Lappen einzurichten, der ein React -Frontend verwendet, um die Eingabe des Benutzers zu rufen, ähnlich wie bei ChatGPT Sie eine Frage stellen können. Wenn ich jedoch versuche,...
Ich verwende Django für das Backend und next.js für mein Frontend
Ich habe eine Tabelle namens Person in meiner Datenbank, die ich kürzlich geändert und zwei neue Werte hinzugefügt habe:...
Ich habe bereits versucht, verschiedene Methoden mit asynchronen Funktionen und Planungsaufgaben sowie Ereignisschleifen zu verwenden. Ich weiß nicht, was ich tun soll. Der folgende Code ist der...
Versuch, eine Website mit Python und Flask zu erstellen. Ich hatte einige grundlegende Seiten erstellt, bevor ich eine Administratorseite für das Hochladen von Inhalten anging. Derzeit verwende ich...
Ich habe einen Backend -Server mit Actix_Web in Rust geschrieben. Ich habe auch eine Frontend, die mit React und Next in JavaScript geschrieben ist. Da dies nicht ordnungsgemäß funktioniert (JS...