私はdjangoに非常に独特な問題を抱えています。
大きなデータを編集するためのWebサイトユーザーインターフェイスを提供しています。このデータの各行は、データベースの行を表します。または特定のタイプの1つのオブジェクト。
ユーザーがテーブルのセルをクリックすると、フォームが開き、このフィールド/列の値を編集できます。
基本的に、次のように機能します。1)ユーザーがクリックした場所に基づいて、オブジェクトIDと編集中のフィールドを含むクエリがサーバーに送信されます。2)この情報フォームに基づいてオンザフライで作成されます。
class FieldEditorForm(forms.ModelForm):
class Meta:
model = MyObject
fields = ['id', field ]
フィールドの名前ではなく変数があることに注意してください。
3)このフィールドは、独自のモデルフォーム検証に合格し、すべて問題ありません。保存メソッドでは、Model.save()で値を更新できます。
しかし、今問題に。空の値がこの形式でサーバーに送信される場合があります。u''のような空の値、またはu''のようなほぼ空の値。これをNoneで置き換えたいので、NULLがデータベースに保存されます。
私がそれをすることができる2つの場所があります。フィールド検証でcleaned_dataを変更するか、フォームのsaveメソッドで。
変数関数名の作成方法がわからないため、どちらのアプローチでも固有の問題が発生します。
def clean_%(field)s():
またはフォーム保存方法の場合
r.%(field)s = None
私が必要なものですが、それらの方法は機能しません。では、変数であるメソッド名を作成したり、オブジェクトの変数パラメーターを何かに設定したりするにはどうすればよいですか。それも可能ですか、それともそこでのアプローチを再考する必要がありますか?
アラン