Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit5559694

Browse files
committed
apijson post/put/delete should get model name from request_tag setting; add NECESSARY support in _put_one
1 parentf6133f8 commit5559694

File tree

1 file changed

+38
-30
lines changed

1 file changed

+38
-30
lines changed

‎uliweb_apijson/apijson/views.py

Lines changed: 38 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -355,21 +355,22 @@ def post(self):
355355
returnjson(self.rdict)
356356

357357
def_post_one(self,key,tag):
358-
modelname=key
358+
APIJSON_REQUESTS=settings.APIJSON_REQUESTSor {}
359+
request_tag=APIJSON_REQUESTS.get(tag,{})
360+
model_name=request_tag.get("@model_name")ortag
361+
359362
params=self.request_data[key]
360363
params_role=params.get("@role")
361364

362365
try:
363-
model=getattr(models,modelname)
364-
model_setting=settings.APIJSON_MODELS.get(modelname,{})
366+
model=getattr(models,model_name)
367+
model_setting=settings.APIJSON_MODELS.get(model_name,{})
365368
user_id_field=model_setting.get("user_id_field")
366369
exceptModelNotFoundase:
367-
log.error("try to find model '%s' but not found: '%s'"%(modelname,e))
368-
returnjson({"code":400,"msg":"model '%s' not found"%(modelname)})
370+
log.error("try to find model '%s' but not found: '%s'"%(model_name,e))
371+
returnjson({"code":400,"msg":"model '%s' not found"%(model_name)})
369372

370-
request_tag=settings.APIJSON_REQUESTS.get(tag,{})
371-
_model_name=request_tag.get("@model_name")ortag
372-
request_tag_config=request_tag.get(_model_name,{})
373+
request_tag_config=request_tag.get(model_name,{})
373374
ifnotrequest_tag_config:
374375
returnjson({"code":400,"msg":"tag '%s' not found"%(tag)})
375376
tag_POST=request_tag_config.get("POST",{})
@@ -387,7 +388,7 @@ def _post_one(self,key,tag):
387388
roles=model_POST.get("roles")
388389
ifparams_role:
389390
ifnotparams_roleinroles:
390-
returnjson({"code":400,"msg":"'%s' not accessible by role '%s'"%(modelname,params_role)})
391+
returnjson({"code":400,"msg":"'%s' not accessible by role '%s'"%(model_name,params_role)})
391392
roles= [params_role]
392393

393394
ifroles:
@@ -466,22 +467,22 @@ def put(self):
466467
returnjson(self.rdict)
467468

468469
def_put_one(self,key,tag):
469-
modelname=key
470+
APIJSON_REQUESTS=settings.APIJSON_REQUESTSor {}
471+
request_tag=APIJSON_REQUESTS.get(tag,{})
472+
model_name=request_tag.get("@model_name")ortag
473+
470474
params=self.request_data[key]
471475
params_role=params.get("@role")
472476

473477
try:
474-
model=getattr(models,modelname)
475-
model_setting=settings.APIJSON_MODELS.get(modelname,{})
478+
model=getattr(models,model_name)
479+
model_setting=settings.APIJSON_MODELS.get(model_name,{})
476480
user_id_field=model_setting.get("user_id_field")
477481
exceptModelNotFoundase:
478-
log.error("try to find model '%s' but not found: '%s'"%(modelname,e))
479-
returnjson({"code":400,"msg":"model '%s' not found"%(modelname)})
482+
log.error("try to find model '%s' but not found: '%s'"%(model_name,e))
483+
returnjson({"code":400,"msg":"model '%s' not found"%(model_name)})
480484

481-
APIJSON_REQUESTS=settings.APIJSON_REQUESTSor {}
482-
request_tag=APIJSON_REQUESTS.get(tag,{})
483-
_model_name=request_tag.get("@model_name")ortag
484-
request_tag_config=request_tag.get(_model_name,{})
485+
request_tag_config=request_tag.get(model_name,{})
485486
ifnotrequest_tag_config:
486487
returnjson({"code":400,"msg":"tag '%s' not found"%(tag)})
487488
tag_PUT=request_tag_config.get("PUT",{})
@@ -508,7 +509,7 @@ def _put_one(self,key,tag):
508509
roles=model_PUT.get("roles")
509510
ifparams_role:
510511
ifnotparams_roleinroles:
511-
returnjson({"code":400,"msg":"'%s' not accessible by role '%s'"%(modelname,params_role)})
512+
returnjson({"code":400,"msg":"'%s' not accessible by role '%s'"%(model_name,params_role)})
512513
roles= [params_role]
513514
ifroles:
514515
forroleinroles:
@@ -538,14 +539,20 @@ def _put_one(self,key,tag):
538539
log.error("request '%s' disallow '%s'"%(tag,field))
539540
returnjson({"code":400,"msg":"request '%s' disallow '%s'"%(tag,field)})
540541

542+
NECESSARY=tag_PUT.get("NECESSARY")
543+
ifNECESSARY:
544+
forfieldinNECESSARY:
545+
iffieldnotinparams:
546+
log.error("request '%s' have not necessary field '%s'"%(tag,field))
547+
returnjson({"code":400,"msg":"request '%s' have not necessary field '%s'"%(tag,field)})
541548
kwargs= {}
542549
forkinparams:
543550
ifk=="id":
544551
continue
545552
elifhasattr(obj,k):
546553
kwargs[k]=params[k]
547554
else:
548-
returnjson({"code":400,"msg":"'%s' don't have field '%s'"%(modelname,k)})
555+
returnjson({"code":400,"msg":"'%s' don't have field '%s'"%(model_name,k)})
549556
obj.update(**kwargs)
550557
ret=obj.save()
551558
obj_dict= {"id":id_}
@@ -582,21 +589,22 @@ def delete(self):
582589
returnjson(self.rdict)
583590

584591
def_delete_one(self,key,tag):
585-
modelname=key
592+
APIJSON_REQUESTS=settings.APIJSON_REQUESTSor {}
593+
request_tag=APIJSON_REQUESTS.get(tag,{})
594+
model_name=request_tag.get("@model_name")ortag
595+
586596
params=self.request_data[key]
587597
params_role=params.get("@role")
588598

589599
try:
590-
model=getattr(models,modelname)
591-
model_setting=settings.APIJSON_MODELS.get(modelname,{})
600+
model=getattr(models,model_name)
601+
model_setting=settings.APIJSON_MODELS.get(model_name,{})
592602
user_id_field=model_setting.get("user_id_field")
593603
exceptModelNotFoundase:
594-
log.error("try to find model '%s' but not found: '%s'"%(modelname,e))
595-
returnjson({"code":400,"msg":"model '%s' not found"%(modelname)})
604+
log.error("try to find model '%s' but not found: '%s'"%(model_name,e))
605+
returnjson({"code":400,"msg":"model '%s' not found"%(model_name)})
596606

597-
request_tag=settings.APIJSON_REQUESTS.get(tag,{})
598-
_model_name=request_tag.get("@model_name")ortag
599-
request_tag_config=request_tag.get(_model_name,{})
607+
request_tag_config=request_tag.get(model_name,{})
600608
ifnotrequest_tag_config:
601609
returnjson({"code":400,"msg":"tag '%s' not found"%(tag)})
602610
tag_DELETE=request_tag_config.get("DELETE",{})
@@ -623,7 +631,7 @@ def _delete_one(self,key,tag):
623631
roles=DELETE.get("roles")
624632
ifparams_role:
625633
ifnotparams_roleinroles:
626-
returnjson({"code":400,"msg":"'%s' not accessible by role '%s'"%(modelname,params_role)})
634+
returnjson({"code":400,"msg":"'%s' not accessible by role '%s'"%(model_name,params_role)})
627635
roles= [params_role]
628636
ifroles:
629637
forroleinroles:
@@ -650,7 +658,7 @@ def _delete_one(self,key,tag):
650658
obj.delete()
651659
ret=True
652660
exceptExceptionase:
653-
log.error("remove %s %s fail"%(modelname,id_))
661+
log.error("remove %s %s fail"%(model_name,id_))
654662
ret=False
655663

656664
obj_dict= {"id":id_}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp