0
このモデルの形式を想定しますdjango - フォームデータ自体に基づいてフォームフィールドを削除する方法は?
class MyModel(models.Model):
sex = models.CharField(max_length=1, default='M')
field1 = models.CharField(max_length=20)
field2 = models.CharField(max_length=20
)
class MyForm(ModelForm):
class Meta:
model = MyModel
fields = ('sex', 'field1', 'field2')
場合は単純です - 「セックス」の男性であれば、フィールド1が必要とされなければならないとフィールド2は空でなければなりません。 'sex'がFemaleの場合、field2は入力し、field1はフォームで空にする必要があります。 いずれの場合も、他のフィールドが設定されていない場合は、サーバーで自分自身で設定する必要があります。手段 - フィールド1とフィールド2の両方がモデルで必要です。私はちょうど1つがフォームの中で編集可能であることを望む。 javascriptを使用してフォームに条件付きで表示されますが、どのようにサーバーでそれを強制できますか?
私は形.clean()
で
self.fields.pop('field1')
を使用してみましたが、それはまだthe__init__方法では、フィールドレベル
あなたフィールドに.disabled属性を使用し、フィールド値を自分で設定するだけです。このトリックは実際にis_boundを__init__の形式で使用していました – user3599803