41 lines
1.6 KiB
Python
41 lines
1.6 KiB
Python
from typing import Optional
|
|
from sqlalchemy.orm import Session
|
|
from mooc.crud.crud_base import CRUDBase
|
|
from mooc.models.news_reply import NewsReply
|
|
from mooc.schemas.news_reply import NewsReplyCreate, NewsReplyUpdate
|
|
|
|
class CRUDNewsReply(CRUDBase[NewsReply, NewsReplyCreate, NewsReplyUpdate]):
|
|
def get_by_id(self, db: Session, *, id: int) -> Optional[NewsReply]:
|
|
return self.get_by_field(db, "Id", id) # 注意这里使用 "Id" 而不是 "id"
|
|
|
|
# 创建实例
|
|
news_reply = CRUDNewsReply(NewsReply)
|
|
|
|
def get_news_reply(db: Session, news_reply_id: int):
|
|
return db.query(models.NewsReply).filter(models.NewsReply.Id == news_reply_id).first()
|
|
|
|
def get_news_replies(db: Session, skip: int = 0, limit: int = 100):
|
|
return db.query(models.NewsReply).offset(skip).limit(limit).all()
|
|
|
|
def create_news_reply(db: Session, news_reply: schemas.NewsReplyCreate):
|
|
db_news_reply = models.NewsReply(**news_reply.dict())
|
|
db.add(db_news_reply)
|
|
db.commit()
|
|
db.refresh(db_news_reply)
|
|
return db_news_reply
|
|
|
|
def update_news_reply(db: Session, news_reply_id: int, news_reply: schemas.NewsReplyCreate):
|
|
db_news_reply = db.query(models.NewsReply).filter(models.NewsReply.Id == news_reply_id).first()
|
|
if db_news_reply:
|
|
for key, value in news_reply.dict().items():
|
|
setattr(db_news_reply, key, value)
|
|
db.commit()
|
|
db.refresh(db_news_reply)
|
|
return db_news_reply
|
|
|
|
def delete_news_reply(db: Session, news_reply_id: int):
|
|
db_news_reply = db.query(models.NewsReply).filter(models.NewsReply.Id == news_reply_id).first()
|
|
if db_news_reply:
|
|
db.delete(db_news_reply)
|
|
db.commit()
|
|
return db_news_reply |