python - 在表单中添加/更改字段的最佳方法
问题描述
我有以下型号
class customer_prices(models.Model):
user = models.ForeignKey(User, on_delete = models.CASCADE,null=True)
price = models.FloatField()
image = models.FloatField()
function = models.TexField()
.
.
(10 more fields)
主页中显示的字段只是price
因此其他字段是手动分配的,基于自写返回的数据帧中的值,some_util_function()
例如
@login_required
def add_price(request):
cleaned_data = form.cleaned_data
df = some_util_function(cleaned_data["price"])
form.user_id = user.id
form.image= df["image"]
.
.
form.save()
messages.success(request, "Price added")
return redirect("my_html")
return render(...)
正如我们所看到的,每个表单字段都被更新,form.field=df["field"]
因此我想知道是否有另一种(更好的方法)这样做?
我想过以下两种方式:
- 而不是
form.field=value
那时form.cleaned_data["field"] = value
- 由于我在数据框中拥有所有数据,因此只需将该数据框推送到给定的数据库,例如
df.to_sql("my_table_name")
.
我知道(2)是有效的,但我认为最好将数据库更改保留给 Django,而不是在推送数据自己和让 Django 处理它之间混合。
解决方案
推荐阅读
- python - 如何在可执行文件上运行脚本?
- r - “率”列的长度必须为 1(汇总值),而不是 22906
- python - tkinter 按钮按下重复
- python - 从其他计算机控制树莓派 python 项目
- javascript - Apache Cordova:从 Web 视图中引发事件
- angular - 在 Firestore 中创建结构并获取数据
- selenium-webdriver - 无法单击硒网络驱动程序中的第二个按钮
- java - 如何通过 Arraylist 打印完整的输入列表?
- javascript - 使用 WEBRTC 进行端口扫描
- arrays - 如何像在 Scala 中一样展平数组