我正在开发我的第一个Django应用,我需要获取用户在我的模型字段中输入的数据,将其插入到使用该数据进行计算的函数中,然后返回该计算的值到我的模型中,然后将其存储。
将结果存储在我的数据库中并不是必须的,但是稍后我将需要使用结果图来允许应用确定向用户呈现哪些数据。
我在models.py中有我的模型课:
class HWID
{
public static bool HasKey()
{
if (!String.IsNullOrEmpty(Settings.Default.ID))
{
return true;
}
return false;
}
public static void Lock()
{
if (String.IsNullOrEmpty(Settings.Default.ID))
{
ManagementClass managClass = new ManagementClass("win32_processor");
ManagementObjectCollection managCollec = managClass.GetInstances();
foreach (ManagementObject managObj in managCollec)
{
var cpuInfo = managObj.Properties["processorID"].Value.ToString();
Settings.Default.ID = cpuInfo;
Settings.Default.Save();
Settings.Default.Reload();
break;
}
}
}
public static bool CompareKey()
{
var managClass = new ManagementClass("win32_processor");
var managCollec = managClass.GetInstances();
foreach (var managObj in managCollec)
{
var cpuInfo = managObj.Properties["processorID"].Value.ToString();
if (cpuInfo == Settings.Default.ID)
{
return true;
}
}
return false;
}
}
和我在services.py文件中的功能:
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
age = models.IntegerField(default=18)
gender = models.CharField(max_length=6, choices=gend, default='')
weight = models.IntegerField(default=0)
height = models.IntegerField(default=0)
我将如何获得结果值,然后将其存储在数据库中,或将其保留在另一逻辑中使用?
我会更好地使用类中的函数作为方法吗?
很抱歉,我的问题还不是很好,我是一个新手。
如有帮助,请帮忙!
答案 0 :(得分:0)
是的,您可以将其添加为Profile的方法。和/或,如果您想方便地保存结果,则可以向配置文件模型添加另一个字段,并覆盖save方法,以便在保存实例时重新计算该方法。像这样:
def save(self, *args, **kwargs):
self.update_bmr()
super().save(*args, **kwargs)
def update_bmr(self):
if self.gender == "Male":
self.bmr = (
66.5
+ (13.75 * self.weight)
+ (5 * self.height)
- (6.755 * self.age)
)
elif self.gender == "Female":
self.bmr = (
655.1
+ (9.6 * self.weight)
+ (1.8 * self.height)
- (4.7 * self.age)
)
else:
self.bmr = None
您可能需要防止丢失数据。