Python中文
首页
教程
问答
标签
搜索
登录
注册
Django表单在pythonshell中引发KeyError,在视图中没有错误
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>django表格:</p> <pre><code>class ParameterForm(forms.Form): pcat = forms.IntegerField() gpa = forms.FloatField() city = forms.CharField(required = False) state = forms.CharField(required = False, min_length = 2, max_length = 2) </code></pre> <p>当我在python shell中测试此表单时,我能够捕获丢失的数据,如下所示:</p> ^{pr2}$ <p>但是,当我试图在我的视图中使用这个相同的逻辑时,这个异常永远不会被引发,并且函数继续运行,直到丢失的数据导致它中断为止。在</p> <p>从视图.py公司名称:</p> <pre><code>def sByInfo(request): print "\n \n NEW CALL" parameter_form = ParameterForm(request.GET) if parameter_form.is_valid(): ranked = Ranked.objects.all() unranked = Unranked.objects.all() ranked_matches = [] # List for ranked institution matches unranked_matches = [] # List for unranked institution matches try: gpa = parameter_form.data['gpa'] gpa = float(gpa) print gpa pcat = parameter_form.data['pcat'] pcat = int(pcat) print pcat try: city = parameter_form.data['city'] print city state = parameter_form.data['state'] print state position = getPos(city, state) lati = Decimal(position['lat']) loni = Decimal(position['lon']) print "\n RANKED" for x in ranked: print x.name average_gpa = (x.gpa_expected + x.gpa_overall) / 2 print average_gpa if gpa >= average_gpa: print "GPA good" try: ranked_matches.index(x) print "School already added" except ValueError: ranked_matches.append(x) print "School added" else: print "GPA too low" if pcat >= x.min_pcat: try: ranked_matches.index(x) print "School already added" except ValueError: ranked_matches.append(x) print "School added" else: print "PCAT too low" lat = Decimal(x.lat) lon = Decimal(x.lon) difference = posDifference(lati, loni, lat, lon) print "Distance is {} miles".format(difference) if difference <= 150: try: ranked_matches.index(x) print "School already added" except ValueError: ranked_matches.append(x) print "School added" else: print "School out of range" print "\n UNRANKED" for y in unranked: print y.name average_gpa = (y.gpa_expected + y.gpa_overall) / 2 if gpa >= average_gpa: try: unranked_matches.index(y) print "School already added" except ValueError: unranked_matches.append(y) print "School added" else: print "GPA too low" if pcat >= y.min_pcat: try: unranked_matches.index(y) print "School already added" except ValueError: unranked_matches.append(y) print "School added" else: print "PCAT too low" lat = Decimal(y.lat) lon = Decimal(y.lon) difference = posDifference(lati, loni, lat, lon) print "Distance is {} miles".format(difference) if difference <= 150: try: unranked_matches.index(y) print "School already added" except ValueError: unranked_matches.append(y) print "School added" else: print "School out of range" except KeyError: ## City or State was not submitted print "City or state missing" try: state = request.GET['state'] for x in ranked: average_gpa = (x.gpa_overall + x.gpa_expected) / 2 if gpa >= average_gpa: try: ranked_matches.index(x) print "School already added" except ValueError: ranked_matches.append(x) print "School added" else: print "GPA too low" if pcat >= x.min_pcat: try: ranked_matches.index(x) print "School already added" except ValueError: ranked_matches.append(x) print "School added" else: print "PCAT too low" if state.lower() == x.state.lower(): try: ranked_matches.index(x) print "School already added" except ValueError: ranked_matches.append(x) print "School added" else: print "School not in state" for y in unranked: average_gpa = (y.gpa_expected + y.gpa_overall) / 2 if gpa >= average_gpa: try: unranked_matches.index(y) print "School already added" except ValueError: unranked_matches.append(y) print "School added" else: print "GPA too low" if pcat >= y.min_pcat: try: unranked_matches.index(y) print "School already added" except ValueError: unranked_matches.append(y) print "School added" else: print "PCAT too low" if state.lower() == y.state.lower(): try: unranked_matches.index(y) print "School already added" except ValueError: unranked_matches.append(y) print "School added" else: print "School out of state" except KeyError: print "City and state missing" except KeyError: return render('You must enter both GPA & PCAT scores') else: return render_to_response('index.html', {'error' : 'PCAT and GPA values are required.', 'form' : parameter_form}) return render_to_response('results.html', {'ranked_matches' : ranked_matches, 'unranked_matches' : unranked_matches}, context_instance = RequestContext(request)) </code></pre> <p>我很困惑,为什么这个例外被提了出来,但在我看来却没有?感谢所有的帮助,谢谢。在</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>我解决这个问题的方法如下:</p> <pre><code>if len(parameter_form.data['city']) != 0: </code></pre> <p>它检查<code>string</code>的长度是否为0。在</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何根据与其他行比较的列表筛选序列?
6 回答
如何根据与前一行的差异对行进行分组?
4 回答
如何根据与另一个图像匹配的图像特征来变换图像?
9 回答
如何根据与另一个模型的关系在模板视图中查询另一个Django模型
1 回答
如何根据与已知参考轨迹的距离过滤出位置数据?
2 回答
如何根据与现有值比较的下限和上限创建新的pandas系列
1 回答
如何根据与输入字符串共享的特征从数据集中获取值
5 回答
如何根据与长生不老药的多对多关系排序?
3 回答
如何根据世代显示,x'攻击'和y'防御'
10 回答
如何根据两个CSV文件中的公共信息用Python合并两个CSV文件?
9 回答
如何根据两个CSV文件的相似性比较它们的行?
10 回答
如何根据两个不同列的值在一列中填充NaN
5 回答
如何根据两个不同列的日期获取交叉联接表的唯一记录?
2 回答
如何根据两个不同列表中的相应值创建if语句?
7 回答
如何根据两个不同栏目的分数组成三个不同的班级,有人能指导我吗,请参考我的代码
2 回答
如何根据两个不同的字符串检查变量?9行examp
3 回答
如何根据两个值对词典进行分组?
9 回答
如何根据两个列表获得自定义元组的计数
6 回答
如何根据两个变量的条件打印特定输出
1 回答
如何根据两个变量重新采样以均匀地派生类?
7 回答