医疗专家系统诊断结果无法传递至浏览器问题求助
医疗专家系统诊断结果无法传递至浏览器问题
问题描述
我正在开发一个医疗专家系统项目,目前遇到的问题是系统无法将诊断结果传递至浏览器。用户能从症状列表中选择症状,已实现通过JavaScript在“Selected Symptoms”标题下显示选中的症状,但点击诊断按钮后,系统无任何结果返回,页面表现如同刷新。
相关代码
forms.py
class SymptomForm(forms.Form): symptoms = forms.MultipleChoiceField(widget=forms.CheckboxSelectMultiple) def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.fields['symptoms'].choices = self.get_symptoms_choices() def get_symptoms_choices(self): symptoms = Symptom.objects.order_by('name').values_list('name', flat=True) return [(symptom, symptom) for symptom in symptoms]
模型代码(models.py)
from django.db import models class Symptom(models.Model): name = models.CharField(max_length=100) def __str__(self): return self.name
诊断功能视图代码(views.py)
from django.shortcuts import render from .models import Symptom from .forms import SymptomForm from django.contrib.auth.decorators import login_required import pickle @login_required def diagnosis(request): with open('diagnosis/ml_model.sav', 'rb') as f: model = pickle.load(f) symptoms = Symptom.objects.order_by('name').values_list('name', flat=True) form = SymptomForm() if request.method == 'POST': form = SymptomForm(request.POST) if form.is_valid(): selected_symptoms = form.cleaned_data.get('symptoms') feature_vector = [1 if symptom in selected_symptoms else 0 for symptom in symptoms] #make prediction diagnose = model.predict([feature_vector])[0] #Display result context = {'diagnose':diagnose, 'selected_symptoms':selected_symptoms} return render(request, 'pages/diagnosis.html', context) else: form = SymptomForm() form.fields['symptoms'].choices=[(symptom,symptom) for symptom in symptoms] context = {'form':form} return render(request, 'pages/diagnosis.html', context)
诊断页面截图

内容的提问来源于stack exchange,提问作者sjr_dlomo
相关产品推荐
相关产品推荐

