1

我对 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

是我需要的,但这些方法不起作用。那么我如何创建可变的方法名称或将对象变量参数设置为某些东西。甚至有可能还是我必须重新考虑我的方法?

艾伦

4

1 回答 1

2

在后一种情况下,setattr(r, field + 's', None)

于 2013-02-07T14:23:37.880 回答