Djangoでフィールドを作成し、そのインスタンスを1つだけ作成するにはどうすればよいですか。つまり、必要なインスタンスは1つだけなので、このアイテムの複数のエントリをデータベースに保存したくありません。管理者インターフェイスでは、このアイテムのみを変更し、これの複数のインスタンスを追加しない場合があります。
質問する
60 次
2 に答える
1
DB に単一レコードを実装することは推奨されず、モデルに反します。やりたいことを実現するために、情報の保存方法を変更したい場合があります。
たとえば、このレコードを保存する場合:
SingleRecord: { field1: 'ABC', field2: 'XYZ', field3: 100 }
Key:Value
モデルを変更して、ペアをモデルに格納できます。
class MySingleRecord(models.Model):
key = models.CharField(unique=True)
value = models.CharField()
これにより、1つのレコードが1つだけになりますkey
。
これの欠点は、値の型が固定されていることです。ただし、type
モデルにフィールドを追加し、保存中に文字列に変換し、使用時に適切な型に戻すことで、値を操作できます。
于 2012-10-20T06:19:08.313 に答える
0
unique=True 引数を使用して、重複するエントリが作成されていないことをデータベースでチェックできます。
于 2012-10-20T03:39:08.300 に答える