(
request: Request,
resource: str = Path(...),
resources=Depends(get_resources),
model_resource: ModelResource = Depends(get_model_resource),
model=Depends(get_model),
)
| 198 | |
| 199 | @router.post("/{resource}/create") |
| 200 | async def create( |
| 201 | request: Request, |
| 202 | resource: str = Path(...), |
| 203 | resources=Depends(get_resources), |
| 204 | model_resource: ModelResource = Depends(get_model_resource), |
| 205 | model=Depends(get_model), |
| 206 | ): |
| 207 | inputs = await model_resource.get_inputs(request) |
| 208 | form = await request.form() |
| 209 | data, m2m_data = await model_resource.resolve_data(request, form) |
| 210 | async with in_transaction() as conn: |
| 211 | obj = await model.create(**data, using_db=conn) |
| 212 | for k, items in m2m_data.items(): |
| 213 | m2m_obj = getattr(obj, k) # type:ManyToManyRelation |
| 214 | await m2m_obj.add(*items, using_db=conn) |
| 215 | if "save" in form.keys(): |
| 216 | return redirect(request, "list_view", resource=resource) |
| 217 | context = { |
| 218 | "request": request, |
| 219 | "resources": resources, |
| 220 | "resource_label": model_resource.label, |
| 221 | "resource": resource, |
| 222 | "inputs": inputs, |
| 223 | "model_resource": model_resource, |
| 224 | "page_title": model_resource.page_title, |
| 225 | "page_pre_title": model_resource.page_pre_title, |
| 226 | } |
| 227 | try: |
| 228 | return templates.TemplateResponse( |
| 229 | f"{resource}/create.html", |
| 230 | context=context, |
| 231 | ) |
| 232 | except TemplateNotFound: |
| 233 | return templates.TemplateResponse( |
| 234 | "create.html", |
| 235 | context=context, |
| 236 | ) |
| 237 | |
| 238 | |
| 239 | @router.delete("/{resource}/delete/{pk}") |
nothing calls this directly
no test coverage detected