diff --git a/models/city.py b/models/city.py index a890a7b..cc27a40 100755 --- a/models/city.py +++ b/models/city.py @@ -12,22 +12,21 @@ class named city that inharits from BaseModel class City(BaseModel, Base): """This is the class for City Attributes: - state_id: The state id + state_id: foreign key to states.id name: input name """ __tablename__ = 'cities' - if os.getenv('HBNB_TYPE_STORAGE') == 'db': id = Column(String(60), nullable=False, primary_key=True) - created_at = Column(DateTime, nullable=False, - default=datetime.utcnow()) - updated_at = Column(DateTime, nullable=False, - default=datetime.utcnow()) - name = Column(String(128), nullable=False) + created_at = Column(DateTime, + nullable=False, default=datetime.utcnow()) + updated_at = Column(DateTime, + nullable=False, default=datetime.utcnow()) state_id = Column(String(60), ForeignKey('states.id'), nullable=False) - state = relationship( - 'State', back_populates='cities') + name = Column(String(128), nullable=False) + state = relationship('State', back_populates='cities') + else: - name = "" state_id = "" + name = "" diff --git a/models/state.py b/models/state.py index 0117601..0daf25f 100755 --- a/models/state.py +++ b/models/state.py @@ -14,7 +14,7 @@ class State(BaseModel, Base): """This is the class for State Attributes: name: input name - cities = relationship between state and city tables. + cities: relationship between state and city tables. """ __tablename__ = 'states' @@ -25,20 +25,21 @@ class State(BaseModel, Base): updated_at = Column(DateTime, nullable=False, default=datetime.utcnow()) name = Column(String(128), nullable=False) - cities = relationship( - 'City', back_populates='state', - cascade='all, delete, delete-orphan') + cities = relationship('City', + back_populates='state', + cascade='all, delete, delete-orphan' + ) else: name = "" @property def cities(self): - """returns list of Cities and some relationships""" + """returns list of City instances with state_id equal + to the current State.id""" from models import storage cities_instances = [] - cities_dict = storage.all(City) - for key, value in cities_dict.items(): - if self.id == value.state_id: - cities_instances.append(value) - return (cities_instances) + for city in storage.all(City).values(): + if city.state_id == self.id: + cities_instances.append(city) + return cities_instances