我对django有很独特的问题。
我提供网站用户界面来编辑大数据。此数据上的每一行代表数据库中的一行。或某种类型的一个对象。
用户点击表格中的单元格,然后打开表单,他们可以在此处编辑此字段/列值。
本质上它的工作原理如下: 1)根据用户点击的位置,将查询发送到服务器包含对象id和他正在编辑的字段。 2)基于此信息表格即时创建:
class FieldEditorForm(forms.ModelForm):
class Meta:
model = MyObject
fields = ['id', field ]
注意字段中有变量而不是字段的名称。
3)这个字段通过自己的模型验证,一切都很好。在save方法中,Model.save()足以更新值。
但现在问题。有时以这种形式将空值发送到服务器。像你这样的Empy价值或像你一样几乎像emtpty一样。我想用None来重复这个,所以NULL将被保存到数据库。
我有两个地方可以做到这一点。在字段验证中修改cleaning_data或在表单保存方法中。
这两种方法都引发了独特的问题,因为我不知道如何创建变量函数名称。
def clean_%(field)s():
或表格保存方法
r.%(field)s = None
是我需要的,但这些方法不起作用。那么我怎么能创建变量的方法名称或设置对象变量参数的东西。它甚至可能还是我必须重新考虑我的做法?
艾伦
答案 0 :(得分:2)
在后一种情况下,setattr(r, field + 's', None)
。