외래 키가있는 데이터베이스에 외래 키가있는 테이블을 만들려고합니다.
플레이어 테이블에 팀 테이블에 대한 외부 키가 있고 팀 테이블에 플레이어 테이블에 대한 외부 키가 있습니다.다른 테이블을 참조하는 외래 키가있는 두 개의 테이블 NameError
class Player(Model):
nickname = CharField(max_length=30)
steam_id = CharField(max_length=15)
team = ForeignKeyField(Team)
class Meta:
database = db
class Team(Model):
name = CharField(max_length=30)
captain = ForeignKeyField(Player)
class Meta:
database = db
Player.create_table()
Team.create_table()
누군가가 나를 도울 수 : 난 내 코드를 실행하면 난 내 코드는 다음 NameError: name 'Team' is not defined
받고 있어요? :)
내가 peewee 만 SQL을 모르겠어요하지만 당신은/테이블에 "클래스"에 FK를 설정할 수 SQL에 존재하지 않습니다. 나는 그것이 같다고 생각한다. 두 클래스를 모두 생성 한 후에 FK를 추가하려고 할 수 있습니다. 이 외에도 플레이어, 팀 및 캡틴의 3 가지 속성이있는 'TeamPlayer'클래스를 수행 할 수 있습니다. 그래서 당신은 교차하는 FK를 피하십시오 – bish
빠른 답께 고마워요! 팀, "setattr (팀,"캡틴 ", ForeignKeyField (플레이어))','setattr (플레이어,"팀, ForeignKeyField (팀))'문제를 해결했습니다 : – KsaneK
이 방법은 실제로 특정 후크 때문에 잘 작동하지 않습니다 메타 클래스/모델 클래스 생성 중에 실행됩니다. 대신 동적으로 필드를 추가하려면 "field.add_to_class (model_class, field_name)"을 호출해야합니다. 이렇게하면 속성을 올바르게 설정하고 후크를 실행합니다. * 최고/정답 *은 아래 답변 섹션에 나열되어 있습니다. – coleifer