28 lines
1.5 KiB
Python
28 lines
1.5 KiB
Python
Here's the `posts.py` file for the `app/api/v1/models/` directory of the `blog_app_igblf` FastAPI backend, defining a SQLAlchemy model for posts:
|
|
|
|
from sqlalchemy import Column, ForeignKey, Integer, String, Text
|
|
from sqlalchemy.orm import relationship
|
|
|
|
from app.db import Base
|
|
|
|
class Post(Base):
|
|
__tablename__ = "posts"
|
|
|
|
id = Column(Integer, primary_key=True, index=True)
|
|
title = Column(String, index=True)
|
|
content = Column(Text)
|
|
user_id = Column(Integer, ForeignKey("users.id"))
|
|
|
|
author = relationship("User", back_populates="posts")
|
|
|
|
This file defines a `Post` model that inherits from the `Base` class (assumed to be defined in `app.db`). The `Post` model has the following columns:
|
|
|
|
|
|
The `author` attribute is a relationship with the `User` model (assumed to be defined elsewhere), using the `back_populates` parameter to create a bidirectional relationship. This means that each `Post` instance will have an `author` attribute that references the associated `User` instance, and each `User` instance will have a `posts` attribute that contains a list of associated `Post` instances.
|
|
|
|
Note that this code assumes the following:
|
|
|
|
2. The `User` model is defined elsewhere (e.g., `app/api/v1/models/users.py`).
|
|
3. The necessary imports for SQLAlchemy are available (e.g., `from sqlalchemy import ...`).
|
|
|
|
Make sure to import this model in the appropriate places (e.g., `app/main.py`) and create the necessary database tables using SQLAlchemy's database migration tools or by running the appropriate commands. |