mirror of
https://github.com/fastapi-admin/fastapi-admin.git
synced 2025-08-14 18:58:13 +08:00
bug fix
This commit is contained in:
@ -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():
|
||||
|
@ -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
|
||||
|
||||
|
||||
|
@ -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
|
||||
|
@ -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),
|
||||
]
|
||||
|
||||
|
@ -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,
|
||||
|
@ -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()
|
||||
|
@ -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 }}
|
||||
|
Reference in New Issue
Block a user