2010-07-09 2 views
1

관련 개체가 모두 데이터로 채워진 경우에만 데이터가 저장된다는 보장은 어떻게합니까?두 개의 관련 모델이 저장되는 것을 보장하는 방법은 무엇입니까?

class A(models.Model): 
    title = models.CharField(max_length=255) 
    slug = models.SlugField() 

class B(A): 
    author = models.CharField(max_length=255) 
    url = models.URLField() 

나는 모델 B에 액세스하여 데이터를 삽입 : 오류가 모델 B에서 발생

b = B() 
b.title = 'title' 
b.slug = 'slug' 
b.author = 'author' 
b.url = 'www.google.com' 
b.save() 

경우 모델 A는 여전히 저장됩니다. 모델 B가 저장되지 않을 때 모델 A가 저장되지 않도록하려면 어떻게해야합니까?

답변

2

데이터베이스 거래?

0

무시 B의 저장 방법 (as described in the docs)있다가 A의 full_clean 메서드를 호출합니다. 예외가 발생하면 모델을 저장하지 마십시오.

+0

그게 문제가 아닙니다. B가 예외를 발생 시키면 A는 여전히 저장됩니다. – rotrotrot

+0

그런 다음 B의 full_clean을 호출하십시오. –

관련 문제