0
模型(無視錯別字/次要的語法問題,這只是僞代碼):Django - 模型中的交易?
class SecretModel(models.Model):
some_unique_field = models.CharField(max_length=25, unique=True) # Notice this is unique.
class MyModel(models.Model):
secret_model = models.OneToOneField(SecretModel, editable=False) # Not in the form
spam = models.CharField(max_length=15)
foo = models.IntegerField()
def clean(self):
SecretModel.objects.create(some_unique_field=self.spam)
現在,如果我去做到這一點:
MyModel.objects.create(spam='john', foo='OOPS') # Obviously foo won't take "OOPS" as it's an IntegerField.
#.... ERROR HERE
MyModel.objects.create(spam='john', foo=5) # So I try again here.
#... IntegrityError because SecretModel with some_unique_field = 'john'
already exists.
我明白,我可以把這個與視圖一個關於它的請求事務,但我希望這可以在管理員和API中使用,而不僅僅是表單或視圖。這怎麼可能?
@Ignacio謝謝。這很好找出來。 – orokusaki 2010-03-12 15:55:55