update. 完成友链以及分类接口
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
from ninja import Schema
|
||||
from datetime import datetime
|
||||
from typing import Optional, List
|
||||
|
||||
|
||||
class LinkCategorySchema(Schema):
|
||||
id: int
|
||||
name: str
|
||||
code: str
|
||||
order: int
|
||||
is_active: bool
|
||||
created_at: Optional[datetime] = None
|
||||
|
||||
|
||||
class FriendLinkSchema(Schema):
|
||||
id: int
|
||||
category_id: int
|
||||
name: str
|
||||
url: str
|
||||
order: int
|
||||
is_active: bool
|
||||
created_at: Optional[datetime] = None
|
||||
|
||||
|
||||
class LinkCategoryCreateSchema(Schema):
|
||||
name: str
|
||||
code: str
|
||||
order: int = 0
|
||||
is_active: bool = True
|
||||
|
||||
|
||||
class FriendLinkCreateSchema(Schema):
|
||||
category_id: int
|
||||
name: str
|
||||
url: str
|
||||
order: int = 0
|
||||
is_active: bool = True
|
||||
+70
-7
@@ -1,15 +1,19 @@
|
||||
from django.shortcuts import render
|
||||
from ninja import Router
|
||||
from django.http import JsonResponse
|
||||
from django.views.decorators.http import require_http_methods
|
||||
from django.views.decorators.csrf import csrf_exempt
|
||||
from django.conf import settings
|
||||
import os
|
||||
import uuid
|
||||
from datetime import datetime
|
||||
from typing import Optional, List
|
||||
|
||||
from django.conf import settings
|
||||
from django.http import JsonResponse
|
||||
from django.views.decorators.csrf import csrf_exempt
|
||||
from django.views.decorators.http import require_http_methods
|
||||
from ninja import Router
|
||||
|
||||
from base.models import FriendLink, LinkCategory
|
||||
from base.schema import FriendLinkCreateSchema, FriendLinkSchema, LinkCategoryCreateSchema, LinkCategorySchema
|
||||
|
||||
# Create your views here.
|
||||
router = Router(tags=['content'])
|
||||
router = Router(tags=['base'])
|
||||
|
||||
|
||||
@csrf_exempt
|
||||
@@ -43,3 +47,62 @@ def custom_upload_file(request):
|
||||
"url": file_url,
|
||||
"default": file_url
|
||||
})
|
||||
|
||||
|
||||
# =========================
|
||||
# 分类 CRUD
|
||||
# =========================
|
||||
@router.get("/link-categories", response=List[LinkCategorySchema])
|
||||
def list_categories(request):
|
||||
return LinkCategory.objects.all()
|
||||
|
||||
|
||||
@router.post("/link-categories", response=LinkCategorySchema)
|
||||
def create_category(request, data: LinkCategoryCreateSchema):
|
||||
return LinkCategory.objects.create(**data.dict())
|
||||
|
||||
|
||||
@router.put("/link-categories/{id}", response=LinkCategorySchema)
|
||||
def update_category(request, id: int, data: LinkCategoryCreateSchema):
|
||||
obj = LinkCategory.objects.get(id=id)
|
||||
for k, v in data.dict().items():
|
||||
setattr(obj, k, v)
|
||||
obj.save()
|
||||
return obj
|
||||
|
||||
|
||||
@router.delete("/link-categories/{id}")
|
||||
def delete_category(request, id: int):
|
||||
LinkCategory.objects.get(id=id).delete()
|
||||
return {"success": True}
|
||||
|
||||
|
||||
# =========================
|
||||
# 友情链接 CRUD
|
||||
# =========================
|
||||
@router.get("/friend-links", response=List[FriendLinkSchema])
|
||||
def list_links(request, category_id: Optional[int] = None):
|
||||
query = FriendLink.objects.all()
|
||||
if category_id:
|
||||
query = query.filter(category_id=category_id)
|
||||
return query
|
||||
|
||||
|
||||
@router.post("/friend-links", response=FriendLinkSchema)
|
||||
def create_link(request, data: FriendLinkCreateSchema):
|
||||
return FriendLink.objects.create(**data.dict())
|
||||
|
||||
|
||||
@router.put("/friend-links/{id}", response=FriendLinkSchema)
|
||||
def update_link(request, id: int, data: FriendLinkCreateSchema):
|
||||
obj = FriendLink.objects.get(id=id)
|
||||
for k, v in data.dict().items():
|
||||
setattr(obj, k, v)
|
||||
obj.save()
|
||||
return obj
|
||||
|
||||
|
||||
@router.delete("/friend-links/{id}")
|
||||
def delete_link(request, id: int):
|
||||
FriendLink.objects.get(id=id).delete()
|
||||
return {"success": True}
|
||||
|
||||
Reference in New Issue
Block a user