This commit is contained in:
long2ice
2021-05-14 22:38:01 +08:00
parent 07712ce4c2
commit 50ebd3d864
7 changed files with 18 additions and 21 deletions

View File

@ -6,8 +6,7 @@ from fastapi import FastAPI
from starlette.middleware.cors import CORSMiddleware
from starlette.responses import RedirectResponse
from starlette.staticfiles import StaticFiles
from starlette.status import (HTTP_403_FORBIDDEN, HTTP_404_NOT_FOUND,
HTTP_500_INTERNAL_SERVER_ERROR)
from starlette.status import HTTP_403_FORBIDDEN, HTTP_404_NOT_FOUND, HTTP_500_INTERNAL_SERVER_ERROR
from tortoise.contrib.fastapi import register_tortoise
from examples import settings
@ -15,9 +14,11 @@ from examples.constants import BASE_DIR
from examples.models import Admin
from examples.providers import LoginProvider
from fastapi_admin.app import app as admin_app
from fastapi_admin.exceptions import (forbidden_error_exception,
from fastapi_admin.exceptions import (
forbidden_error_exception,
not_found_error_exception,
server_error_exception)
server_error_exception,
)
def create_app():

View File

@ -25,8 +25,8 @@ async def get_model_resource(request: Request, model=Depends(get_model)):
raise HTTPException(status_code=HTTP_404_NOT_FOUND)
actions = await model_resource.get_actions(request)
bulk_actions = await model_resource.get_bulk_actions(request)
model_resource.actions = actions
model_resource.bulk_actions = bulk_actions
setattr(model_resource, "actions", actions)
setattr(model_resource, "bulk_actions", bulk_actions)
return model_resource

View File

@ -4,8 +4,7 @@ from typing import Type
from aioredis import Redis
from fastapi import Depends, Form
from starlette.middleware.base import (BaseHTTPMiddleware,
RequestResponseEndpoint)
from starlette.middleware.base import BaseHTTPMiddleware, RequestResponseEndpoint
from starlette.requests import Request
from starlette.responses import RedirectResponse
from starlette.status import HTTP_303_SEE_OTHER, HTTP_401_UNAUTHORIZED

View File

@ -6,8 +6,7 @@ from starlette.requests import Request
from tortoise import ForeignKeyFieldInstance, ManyToManyFieldInstance
from tortoise import Model as TortoiseModel
from tortoise.fields import BooleanField, DateField, DatetimeField, JSONField
from tortoise.fields.data import (CharEnumFieldInstance, IntEnumFieldInstance,
IntField, TextField)
from tortoise.fields.data import CharEnumFieldInstance, IntEnumFieldInstance, IntField, TextField
from tortoise.queryset import QuerySet
from fastapi_admin.enums import Method
@ -90,7 +89,9 @@ class Model(Resource):
async def get_actions(self, request: Request) -> List[Action]:
return [
Action(label=_("update"), icon="ti ti-edit", name="update", method=Method.PUT),
Action(
label=_("update"), icon="ti ti-edit", name="update", method=Method.GET, ajax=False
),
Action(label=_("delete"), icon="ti ti-trash", name="delete", method=Method.DELETE),
]

View File

@ -106,7 +106,7 @@ async def update(
.get()
.prefetch_related(*model_resource.get_m2m_field())
)
inputs = await model_resource.get_inputs(obj)
inputs = await model_resource.get_inputs(request, obj)
if "save" in form.keys():
context = {
"request": request,
@ -142,7 +142,7 @@ async def update_view(
model=Depends(get_model),
):
obj = await model.get(pk=pk)
inputs = await model_resource.get_inputs(obj)
inputs = await model_resource.get_inputs(request, obj)
context = {
"request": request,
"resources": resources,

View File

@ -4,7 +4,7 @@ from datetime import date
from typing import Any, List
from urllib.parse import urlencode
from jinja2 import contextfilter
from jinja2 import pass_context
from starlette.requests import Request
from starlette.templating import Jinja2Templates
@ -19,11 +19,9 @@ templates.env.globals["VERSION"] = VERSION
templates.env.globals["NOW_YEAR"] = date.today().year
templates.env.add_extension("jinja2.ext.i18n")
templates.env.add_extension("jinja2.ext.autoescape")
templates.env.add_extension("jinja2.ext.with_")
templates.env.add_extension("jinja2.ext.do")
@contextfilter
@pass_context
def current_page_with_params(context: dict, params: dict):
request = context.get("request") # type:Request
full_path = request.scope["raw_path"].decode()

View File

@ -2,9 +2,7 @@
<label class="form-label">{{ label }}</label>
<textarea {% if not null %}required{% endif %} class="form-control" name="{{ name }}"
placeholder="{{ placeholder }}"
{% if disabled %}disabled{% endif %}>
{{ value }}
</textarea>
{% if disabled %}disabled{% endif %}>{{ value }}</textarea>
{% if help_text %}
<small class="form-hint">
{{ help_text }}