나는 Plates가 Project를 외래 키로 가지고있는 Projects와 Plates에 대한 모델을 포함하고있는 Flask로 구축 할 앱이 있습니다.술병 sqlalchemy foreignkey 속성을 가진 UniqueConstraint
각 프로젝트에는 정수로 주어진 연도가 있습니다 (따라서 2017은 17입니다). 각 플레이트에는 번호판과 이름이 있으며, 플레이트 번호와 플레이트 번호로 구성됩니다. 예를 들어 올해 완료된 프로젝트의 '플레이트 106'은 '17 -0106 '이라는 이름을 갖습니다. 이 이름이 독창적 이길 바랍니다. 여기
내 모델입니다 : 나의 첫 생각이 같은 project.year 특성이 판 사이에 번호가 고유하게 만들기 위해, 그래서 내가__table_args__ = (UniqueConstraint('project.year', 'number', name='_year_number_uc'),)
에 변화를 시도했다, 그러나 이것은 필요
class Project(Model):
__tablename__ = 'projects'
id = Column(Integer, primary_key=True)
name = Column(String(64),unique=True)
year = Column(Integer,default=datetime.now().year-2000)
class Plate(Model):
__tablename__ = 'plates'
id = Column(Integer, primary_key=True)
number = Column(Integer)
project_id = Column(Integer, ForeignKey('projects.id'))
project = relationship('Project',backref=backref('plates',cascade='all, delete-orphan'))
@property
def name(self):
return str(self.project.year) + '-' + str(self.number).zfill(4)
다른 테이블에 액세스하십시오.
데이터베이스에서이 작업을 수행 할 수있는 방법이 있습니까? 또는 숫자/project.year 조합 또는 이름 속성의 고유성을 검사하는 __init__
메서드가 실패 했습니까?