POSTリクエストに1つのフィールドがパラメータとして含まれている場合、ModelFormを使用してインスタンスの1つのフィールドを更新するにはどうすればよいですか? ModelFieldは、POST要求で渡されなかったフィールドを、Noneを使用してデータを失うことでオーバーライドしようとします。DjangoはModelFormを使用して1つのフィールドを更新します
私は25個のフィールドを持つモデルを持っているが
class C(models.Model):
a = models.CharField(max_length=128)
b = models.CharField(max_length=128)
...
x = models.IntegerField()
を言うと、私はviews.py
で公開APIメソッドを使用してCのインスタンスを編集するために、POSTリクエストを行い、デスクトップアプリケーションを持っています私は次のようにフィールドを検証するためのModelFormを使用していますAPIメソッドで:
form = CModelForm(request.POST, instance=c_instance)
if form.is_valid():
form.save()
は(SAVE行う場合)のいずれかDjangoは他のいくつかのフィールドがO nullにすることはできませんと文句を言いr(すべてのフィールドがオプションの場合)は、Noneで上書きされます。
誰かがそれを管理する方法を知っていますか?私は次のように、これらのフィールドを指定してのModelForm内のフィールドのサブセットを使用することができます...
問題は、私は次のとおりです。
データを更新するために、フォームの
–__init__
方法を変更: