2017-12-26 1 views
0

를 제기하지 primary_key와.CqlEngine 모델은 내가이 primary_key와 같은 이메일이있는 사용자 모델을 만든 플라스크 프로젝트</p> <p>에 CassandraDB을 사용하고 고유 한 오류

class User(Model): 
    __table_name__ = 'user' 

    user_id = UUID(primary_key=True) 
    email = Text(max_length=120, primary_key=True) 
    first_name = Text() 
    last_name = Text() 

파이썬 코드 :

user_data = {'email': '[email protected]', "first_name":'John', "last_name":'Doe'} 
user = User(**user_data) 
user.save() 

위의 코드는 제대로 필요에 따라 사용자를 만듭니다

user_data = {'email': '[email protected]', "first_name":'Johnny', "last_name":'Daves'} 
user = User(**user_data) 
user.save() 

이제 위의 코드 업데이트 '조니 daves'에 기존 사용자 홍길동 ' . 내가 기대했던 것은 cqlengine에 의해 제기 된 오류였습니다. "이메일 [email protected]을 가진 사용자가 이미 존재합니다."

왜 오류가 발생하지 않았습니까? 내가 뭔가 잘못하고 있는거야?

답변

0

나는 코드를 살펴본 후 Model 클래스에 _if_not_exists = False이라는 속성이 있음을 알 수있었습니다.이 값을 설정하면 LWTException이라는 개체가 이미 데이터베이스에 있고 사용자가 만들 수 없다는 것을 나타냅니다. . 모델의 _if_not_exists = True 설정 위의 그림과 같이

class User(Model): 
    __table_name__ = 'user' 
    _if_not_exists = True 

    user_id = UUID(primary_key=True) 
    email = Text(max_length=120, primary_key=True) 
    first_name = Text() 
    last_name = Text() 

내 문제 :

해결
관련 문제