2016-07-02 7 views
0

私はこのプライマリキーを持っています:transaction_numberSql Serverでエラーが発生したときに自動フィールドが更新されないようにするにはどうすればよいですか?

有効なトークンを持つモデルを挿入すると自動的に増分します。

同じトークンを持つ2つのモデルを挿入しようとするたびに、私は例外IntegrityErrorを使用して無視します。

問題がtransaction_numberから現在のインデックスが5であると私は同じ理由で20のモデルのようなものを挿入しようとした場合、DjangoはIntegrityErrorが発生しますが、インデックスは、私は停止することができますどのように25

なり、あります更新するインデックス?

おかげでみんな

モデル:

class Transaction(models.Model): 
    transaction_number = models.AutoField(primary_key = True) 
    token = models.CharField(max_length=32, unique = True) 
    login = models.ForeignKey(Account, related_name = 'transactions', db_column = 'login', to_field = 'login') 
    price = models.CharField(max_length = 7) 
    description = models.CharField(max_length = 25) 
    status = models.CharField(max_length = 25) 
    date = models.DateTimeField(auto_now_add=True) 

    class Meta: 
     db_table = 'Transactions' 

表:

CREATE TABLE [dbo].[Transactions](
    [transaction_number] [int] IDENTITY(1,1) NOT NULL, 
    [token] [varchar](32) NOT NULL, 
    [login] [varchar](10) NOT NULL, 
    [price] [varchar](7) NOT NULL, 
    [description] [varchar](25) NOT NULL, 
    [status] [varchar](25) NOT NULL, 
    [date] [datetime] NOT NULL, 
CONSTRAINT [PK_Transactions_1] PRIMARY KEY CLUSTERED 
(
    [transaction_number] ASC 
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] 
) ON [PRIMARY] 

答えて

1

代わりにテストのをあなたがそれらを挿入すると、トークンが同じであれば、何でも持っているかどうかを確認するためにデータベースに問い合わせます同じトークン。何も返されない場合は、それを追加してください:

if not Transaction.objects.get(token=new_token): 
     # do whatever 
関連する問題