【发布时间】:2017-03-30 06:53:57
【问题描述】:
我正在使用 django-rest-framework 和 pandas 来制作一个 api,我的 models.py 文件看起来像这样
class Health(models.Model):
Name = models.CharField(max_length=30,null=True,blank=True)
Age = models.IntegerField(null=True,blank=True)
Weight = models.FloatField(null=True,blank=True)
Height = models.FloatField(null=True,blank=True)
Sugar = models.FloatField(null=True,blank=True)
def __str__(self):
return self.Name
我的views.py文件看起来像这样
@api_view(['GET'])
def my_view(request,id):
qs = Health.objects.filter(id = id)
df = read_frame(qs)
df['x-Mean'] = abs(df['Age'] - df['Age'].mean())
df['1.96*std'] = 1.96*df['Age'].std()
df['Outlier'] = abs(df['Age'] - df['Age'].mean()) > 1.96*df['Age'].std()
df['BMI'] = df['Weight']/(df['Height']/100)**2
a = df.fillna(0)
a = a.to_dict(orient = 'records')
return Response(a)
如您所见,我没有名为 BMI 的模型字段,因为我正在使用 pandas 数据框在我的视图中创建它,并且我想从 django 视图中保存该字段及其在我的 django 数据库中的相应数据。任何人都可以帮助我完成这项任务或提出适当的方法来做到这一点。
【问题讨论】:
-
如果你知道你必须计算
BMI并且总是保存它,为什么不预先添加字段而不是在视图中计算,你可以通过覆盖它在save方法中计算在模型中。 -
@AKS 你能帮我改正我的代码吗
标签: python django pandas django-rest-framework