@@ -15,68 +15,68 @@ class CrudModel(object):
15
15
def __init__ (self , model : Type [models .Model ]):
16
16
self .model = model
17
17
self .m2m_fields = [
18
- f
19
- for f in self .model ._meta .get_fields (include_hidden = True )
20
- if isinstance (f , models .ManyToManyField )
18
+ _field
19
+ for _field in self .model ._meta .get_fields (include_hidden = True )
20
+ if isinstance (_field , models .ManyToManyField )
21
21
]
22
22
23
23
def __get_fields (self , payload : Dict ) -> Tuple [Dict , Dict ]:
24
24
m2m_fields = {}
25
25
local_fields = {}
26
- for field in payload .keys ():
27
- model_field = self .model ._meta .get_field (field )
26
+ for _field in payload .keys ():
27
+ model_field = self .model ._meta .get_field (_field )
28
28
if is_many_relationship (model_field ):
29
- m2m_fields .update ({field : payload [field ]})
29
+ m2m_fields .update ({_field : payload [_field ]})
30
30
else :
31
- local_fields .update ({field : payload [field ]})
31
+ local_fields .update ({_field : payload [_field ]})
32
32
return local_fields , m2m_fields
33
33
34
34
# Define BASE CRUD
35
35
def _crud_add_obj (self , ** payload : Dict ) -> Any :
36
36
local_fields , m2m_fields = self .__get_fields (payload )
37
37
obj = self .model .objects .create (** local_fields )
38
38
if m2m_fields :
39
- for field , value in m2m_fields .items ():
40
- if value and isinstance (value , List ):
41
- m2m_f = getattr (obj , field )
42
- m2m_f .set (value )
39
+ for _field , _value in m2m_fields .items ():
40
+ if _value and isinstance (_value , List ):
41
+ m2m_f = getattr (obj , _field )
42
+ m2m_f .set (_value )
43
43
return obj
44
44
45
- def _crud_del_obj (self , id : int ) -> "BaseApiResponse" :
46
- obj = get_object_or_none (self .model , pk = id )
45
+ def _crud_del_obj (self , pk : int ) -> "BaseApiResponse" :
46
+ obj = get_object_or_none (self .model , pk = pk )
47
47
if obj :
48
- self .model .objects .filter (pk = id ).delete ()
48
+ self .model .objects .filter (pk = pk ).delete ()
49
49
return BaseApiResponse ({"Detail" : "Deleted." })
50
50
else :
51
51
return BaseApiResponse (
52
52
{"Detail" : "Not found." }, message = "Not found."
53
53
) # pragma: no cover
54
54
55
- def _crud_update_obj (self , id : int , payload : Dict ) -> "BaseApiResponse" :
55
+ def _crud_update_obj (self , pk : int , payload : Dict ) -> "BaseApiResponse" :
56
56
local_fields , m2m_fields = self .__get_fields (payload )
57
57
try :
58
58
obj , created = self .model .objects .update_or_create (
59
- pk = id , defaults = local_fields
59
+ pk = pk , defaults = local_fields
60
60
)
61
61
except Exception as e : # pragma: no cover
62
62
logger .error (f"Crud_update Error - { e } " , exc_info = True )
63
63
return BaseApiResponse (message = "Failed" )
64
64
if m2m_fields :
65
- for field , value in m2m_fields .items ():
66
- if value :
67
- m2m_f = getattr (obj , field )
68
- m2m_f .set (value )
65
+ for _field , _value in m2m_fields .items ():
66
+ if _value :
67
+ m2m_f = getattr (obj , _field )
68
+ m2m_f .set (_value )
69
69
return BaseApiResponse ({"id" : obj .id , "created" : created })
70
70
71
- def _crud_get_obj (self , id : int ) -> Any :
71
+ def _crud_get_obj (self , pk : int ) -> Any :
72
72
if self .m2m_fields :
73
- qs = self .model .objects .filter (pk = id ).prefetch_related (
73
+ qs = self .model .objects .filter (pk = pk ).prefetch_related (
74
74
self .m2m_fields [0 ].name
75
75
)
76
76
for f in self .m2m_fields [1 :]:
77
77
qs = qs .prefetch_related (f .name )
78
78
else :
79
- qs = self .model .objects .filter (pk = id )
79
+ qs = self .model .objects .filter (pk = pk )
80
80
if qs :
81
81
return qs .first ()
82
82
return BaseApiResponse ()
0 commit comments