私のDjangoモデルでは、残りはオプションですが、主なものになることができる値は1つだけです。私のモデルでは1つの行に特定のフィールド値を持たせる方法はありますか?
:
@with_author
class BOMVersion(models.Model):
name = models.CharField(max_length=200,null=True, blank=True)
description = models.TextField(null=True, blank=True)
tomaterial = models.ForeignKey(Material, related_name = 'tomaterial')
status = models.CharField(max_length=1, choices=STATUS_CHOICES)
BOM_CHOICES = (
('M','Main'),
('A','Additional'),
)
私は残りの部分は常に追加になりながら、一つだけの行status
の値メインを持っていることを、このようなデータで、このモデルを移入することができるはずです。 (値のみを選択することができたときにそれは完全にラジオボタンの機能です。)例えば
:私はすべての値は常に追加されます追加され、別のを持っています回避策を思い付いた
1 v1 ...A
2 v2 ...M
3 v3 ...A
.........
n vn ...A
ラジオボタンを持つUIで、ユーザーはどの値をメインにするかを選択します。
しかし、このロジックを直接Djangoモデルに適用する方法があるのだろうか?
モデルに追加する方法を知らず、保存メソッドでテストを行います。このインスタンスのステータスがメインの場合は、データベース内の他のすべてのオブジェクトを追加で更新するという条件を設定できます。あなたはそこに無限ループにならないようにする必要があります。 – Shovalt
フォーム要素の機能は、javascriptで実装する必要があり、好ましくはModelFormオブジェクトで検証されます。 – Shovalt