首页 > 解决方案 > 在表单中添加/更改字段的最佳方法

问题描述

我有以下型号

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"]因此我想知道是否有另一种(更好的方法)这样做?

我想过以下两种方式:

  1. 而不是form.field=value那时form.cleaned_data["field"] = value
  2. 由于我在数据框中拥有所有数据,因此只需将该数据框推送到给定的数据库,例如df.to_sql("my_table_name").

我知道(2)是有效的,但我认为最好将数据库更改保留给 Django,而不是在推送数据自己和让 Django 处理它之间混合。

标签: pythondjangodjango-forms

解决方案


推荐阅读