-1

ユーザーが顧客、名前、および RD 番号 (RD 番号は ID に似ています) を追加できるようにするプログラムがあります。既存の詳細をデータベースにアップロードするインポート スクリプトがありますが、RD が使用できる空きスロットがあります。 (つまり、RD 番号が高い顧客、低い顧客、中間の顧客がいるということです。すべてが順番に入力されているわけではありません。) 顧客を追加したときに、次に使用可能な RD 番号が次のようになるようにプログラムを設定する必要があります。デフォルトで設定されています。

マイモデル

class Customer(models.Model):
        name = models.CharField(max_length=100)
        description = models.CharField(max_length=100, blank=True)
        active = models.BooleanField()

        def __unicode__(self):
                return self.name

class Route_distinguisher(models.Model):
        name = models.CharField(max_length=100)
        customer = models.ForeignKey(Customer)
        comment = models.CharField(max_length=100, blank=True)
        active = models.BooleanField(default=True)
        rd = models.CharField(max_length=20, default='33763:264')

        def __unicode__(self):
                return self.name

例として、いくつかのフィールドは次のとおりです。

顧客名RD

トラストコ トラストコ 33763:264100

namco ナムコ 33763:264101

ここに顧客が挿入されているはずです

セル セローネ 33763:264110

そしてここ

ナンプ nampost 33763:264115

4

1 に答える 1

0

質問が正しく理解できたかどうかはわかりませんが、プールから数字を取得したい場合は、

  1. 関数を定義するnext_available_rd()か、そのような関数を含む新しいモデルclass RD_handler(models.Model)を定義します。
  2. RD をインクリメントするだけの場合は、current_idを使用してデータベースに保存しRD_handler、ロジックを実装してメソッドで次の ID を取得できますnext_available_rd()。プールから ID を取得する場合、または ID 生成用により精巧なスキーマを使用する場合も、同じロジックが適用されます。
于 2013-09-18T09:44:27.130 に答える