添加提交

This commit is contained in:
2025-03-18 19:16:32 +08:00
parent f84f34cc46
commit 55ef262ae8
13 changed files with 304 additions and 44 deletions

View File

@@ -1,6 +1,7 @@
from typing import List
from ninja import Router
from ninja.errors import HttpError
from django.shortcuts import get_object_or_404
from account.decorators import super_required
from .schemas import TutorialAll, TutorialIn, TutorialSlim
from .models import Tutorial
@@ -11,20 +12,23 @@ router = Router()
@router.get("/list", response=List[TutorialSlim])
@super_required
def tutorial(request):
"""
后台显示所有的列表
"""
return Tutorial.objects.all()
@router.get("/display", response=List[int])
def get_all_public_display(request):
"""
前台显示所有公开的 display
"""
return Tutorial.objects.filter(is_public=True).values_list("display", flat=True)
@router.get("/{display}", response=TutorialAll)
async def get(request, display: int):
try:
return await Tutorial.objects.aget(display=display)
except Tutorial.DoesNotExist:
raise HttpError(404, "此序号无教程")
def get(request, display: int):
return get_object_or_404(Tutorial, display=display)
@router.post("/")
@@ -45,14 +49,11 @@ def create_or_update(request, payload: TutorialIn):
@router.put("/public/{display}")
@super_required
def toggle_public(request, display: int):
try:
item = Tutorial.objects.get(display=display)
item.is_public = not item.is_public
item.save()
label = "公开" if item.is_public else "隐藏"
return {"message": f"{item.display}{item.title}{label}"}
except Tutorial.DoesNotExist:
raise HttpError(404, "此序号无教程")
item = get_object_or_404(Tutorial, display=display)
item.is_public = not item.is_public
item.save()
label = "公开" if item.is_public else "隐藏"
return {"message": f"{item.display}{item.title}{label}"}
@router.delete("/{display}")