>source

물건을 나타내는 클래스가 있습니다.

class Stuff(db.Model):
    id= db.Column(db.Integer, primary_key=True)
    price= db.Column(db.Integer, nullable=False)
    name= db.Column(db.String(100), unique=True, nullable=False)
    logo= db.Column(db.Text)
    description= db.Column(db.Text)
    def __repr__(self):
        return '<Stuff %r>' % self.name

사용자를 나타내는 클래스가 있습니다.

class User(db.Model):
    id= db.Column(db.Integer, primary_key=True)
    username= db.Column(db.String(80), unique=True, nullable=False)
    name= db.Column(db.String(80), unique=False, nullable=False)
    cart= db.Column(db.Text)
    def __repr__(self):
        return '<User %r>' % self.name

여기 장바구니는 ["Stuff_id_1", "Stuff_id_2"]와 같은 json 문자열입니다.
새 항목을 추가하려면 이 문자열을 변경하면 됩니다.
카트 필드를 사용하는 방법이 멍청하다는 것을 이해합니다.
일대다 관계를 만드는 방법?

  • 답변 # 1

    이 관계를 일대다로 만들려면 다음을 편집해야 합니다.물건클래스에 외래 키를 추가합니다.사용자테이블.

    class Stuff(db.Model):
        id= db.Column(db.Integer, primary_key=True)
        price= db.Column(db.Integer, nullable=False)
        name= db.Column(db.String(100), unique=True, nullable=False)
        logo= db.Column(db.Text)
        description= db.Column(db.Text)
        user_id= db.Column(db.ForeignKey('name_of_users_table.id'))
        user= relationship('User', backref='user_stuffs')
        def __repr__(self):
            return '<Stuff %r>' % self.name
    

    이제 다음과 같은 관계를 사용할 수 있습니다.

    user= User()
    stuff= Stuff()
    # Add to the relationship
    user.user_stuffs.append(stuff)
    db.session.commit()
    

  • 이전 docker : 로컬 도커 컨테이너에서 localhost에서 실행 중인 API에 요청하려면 어떻게 해야 합니까?
  • 다음 javascript : 브라우저 콘솔에서 js 함수를 호출하는 방법은 무엇입니까?