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