python - 从表单中提取数据
问题描述
我刚刚开始学习 Django,现在我正在尝试了解如何在 db 中插入数据,如何处理来自模板的数据等。我的问题是关于从模板中的表单(元类)中提取数据。
这是我的代码:
模型
class Worker(models.Model):
POSITION_SHOICE = (
('MANAGER', 'MANAGER'),
('developer', 'DEVELOPER'),
('teamlead', 'TEAMLEAD'),
('pm', 'PM'),
('hr', 'HR'),
)
f_name = models.CharField(max_length=50)
s_name = models.CharField(max_length=50)
position = models.CharField(max_length=10, choices=POSITION_SHOICE, default='developer')
work_time = models.DecimalField(max_digits=1000, decimal_places=0)
cost_in_hour = models.DecimalField(max_digits=1000, decimal_places=2)
salary = models.DecimalField(max_digits=10000000, decimal_places=2, default=0)
在插入数据之前,salaty 应该这样计算:salary = work_time*cost_in_hour
形式
class WorkerForm(forms.ModelForm):
class Meta:
model = Worker
fields = {
'f_name',
's_name',
'position',
'work_time',
'cost_in_hour',
}
看法
def worker_create_view(request):
form = WorkerForm(request.POST or None)
if form.is_valid():
form.save()
form = WorkerForm()
context = {
'form': form
}
return render(request, "workers/worker_create.html", context)
我实际上无法理解如何从名为“work_time”和“cost_in_hour”的字典项中提取数据。然后计算工资,插入字典并发送到数据库。
PS,如果您可以解释或编写资源,我可以在哪里阅读有关在 Django 中插入数据是如何工作的,那会很酷
解决方案
来自安卓的回答。稍后将把它放在适当的“代码”表单上。
在你的:
if form.is_valid():
instance = form.save(commit=False)
#do what you want with the form fields like
instance.salary = instance.work_time *cost_in_hour
# then
instance.save()
#continue to response
稍后会更好地解释
您还可以覆盖表单本身的表单保存方法以获得更清晰的视图。
希望我能帮上忙
推荐阅读
- python - SSL 1108 Mac 问题
- fedora - rpm包安装成功但没有运行
- xamarin - 拉动刷新 UWP
- python - 在 Python 中删除包含特定数字的行
- oracle - 在 IN 条件内使用字符串变量调用存储过程
- jwt - 在 Keycloak 令牌中包含组(连同角色)?
- r - 无法将类型“闭包”强制转换为“字符”类型的向量 rgl 包
- database - 如何从 Data Lake Storage Gen 1 将数据导入 Azure SQL 数据库?
- python - 为什么在 Python 中操作另一个列表会影响列表的新副本?
- android - android,如何在应用端生成较短版本的 uuid(13 个字符)