商品ID変換アプリを作成しています。2 つの ID スタイルを表す 2 つのモデルがあります。
class Id1(models.Model):
number = models.CharField(max_length=10)
converted = models.CharField(max_length=13)
status = models.CharField(max_length=5) # validation status
error = models.CharField(max_length=10) # error message
def __unicode__(self):
return self.number
class Id2(models.Model):
number = models.CharField(max_length=13)
converted = models.CharField(max_length=10)
status = models.CharField(max_length=5) # validation status
error = models.CharField(max_length=10) # error message
def __unicode__(self):
return self.number
次の 2 つの理由から、Django モデルに組み込みたいサードパーティの Python (非 Django) モジュールがあります。
- 必要な変換機能をすでに提供しています
- 変換を行う際に OO アプローチを使用したい - 関連するデータとそのインスタンスのメソッドをカプセル化するクラス (Id1 など) のインスタンスを作成します。
サードパーティ モジュールには、それぞれいくつかのフィールドとメソッドを持つ次のクラスがあります。
- クラスID(オブジェクト)
- クラス Id1(ID)
- クラス Id2(ID)
...そして、クラスメソッドが呼び出す次のトップレベル関数:
- デフォルト検証
- デフコンバート
- def calculate_checksum
- デフクレンズ
ただし、データベース内のサードパーティ モジュールの属性は必要ありません。各データベース テーブルには、Django モデル フィールド (数値および変換済み) のみを含める必要があります。
これはどのように達成できますか?これが不可能な場合、この問題に取り組む別の方法は何ですか? ビューにロジックを委任しますか?
[編集]モジュールメソッドを使用して、「変換済み」、「ステータス」、「エラー」などのフィールドの一部を初期化したいことを追加するのを忘れていました。これを行う方法はありますか?