1個も値がない時の処理をどう書くかわかりません。ユーザーの身長と体重の遷移のグラフを作っています。
#coding:utf-8 def make_img(): results = UserData.objects.filter(user=request.user).order_by('-consultation_date') xlist = [results[0].weight,results[1].weight,results[2].weight] ylist =[results[0].height,results[1].height,results[2].height] plt.plot(xlist, ylist,color="red",marker="x", markersize=15, markeredgewidth=4, linewidth=0) plt.xlim(0,180) plt.ylim(0, 230) plt.xlabel(u"身長") plt.ylabel(u"体重") plt.fill_between(x=[0,80],y1=0,y2=120, facecolor='yellow', alpha=0.08) plt.fill_between(x=[0,85], y1=0, y2=130, facecolor='yellow', alpha=0.2) jpg_image_buffer = cStringIO.StringIO() plt.savefig(jpg_image_buffer) array = base64.b64encode(jpg_image_buffer.getvalue()) jpg_image_buffer.close() return array
とコードを書いてグラフを描画させようとしています。
models.pyには
class UserData(models.Model): user = models.ForeignKey("auth.User", verbose_name="userdata") weight = models.FloatField(null=True, blank=True, default=None) height = models.FloatField(null=True, blank=True, default=None)
と書きました。weightには体重のデータが、heightには身長のデータが入っています。
ただ、このように書いて実行しても、
results = UserData.objects.filter(user=request.user).order_by('-consultation_date')
に1件もデータが入っていない時、xlistとylistにアクセスできずエラーが出てしまいます。
resultsに1件もデータが入っていない時、どのようにNoneなどの値を格納すればエラーが出ず処理が終わるでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。