11import json
2- from django import apps
2+
3+ from django .apps import apps
34from django .core .management .base import BaseCommand
45from django .core .serializers .json import DjangoJSONEncoder
56
@@ -13,16 +14,22 @@ def add_arguments(self, parser):
1314 parser .add_argument ('--order' , type = str , default = 'pk' ,
1415 help = 'field by which dumpped data is ordered' )
1516 parser .add_argument ('--fields' , type = str ,
16- help = 'list of fields to include in dumpped data' )
17+ help = 'list of fields to include in dumpped data' ,
18+ default = '*' )
1719 parser .add_argument ('--exclude_fields' , type = str ,
18- help = 'list of fields to exclude from dumpped data' )
20+ help = 'list of fields to exclude from dumpped data' ,
21+ default = ''
22+
23+ )
1924 parser .add_argument (
20- '--filter' , type = str , help = 'key/value pairs to apply as filter on dumpped data' )
25+ '--filter' , type = str , help = 'key/value pairs to apply as filter on dumpped data' ,
26+ default = ''
27+ )
2128 parser .add_argument ('--limit' , type = int ,
22- help = 'an integer to limit number of records' )
29+ help = 'an integer to limit number of records' , default = None )
2330 parser .add_argument ('--database' , type = str ,
24- help = 'database name to dump data from' )
25- parser .add_argument ('--format' , type = str ,
31+ help = 'database name to dump data from' , default = 'default' )
32+ parser .add_argument ('--format' , type = str ,default = 'json' ,
2633 help = 'the output format of dumpped data e.g: json' )
2734
2835 def handle (self , * args , ** options ):
@@ -33,7 +40,7 @@ def handle(self, *args, **options):
3340 order = options ['order' ]
3441 filters = self .normalize_filter_string (options ['filter' ])
3542 limit = options ['limit' ]
36- database = options ['database' ] or 'default'
43+ database = options ['database' ]
3744 format = options ['format' ]
3845
3946 Model = apps .get_model (app_model )
@@ -42,13 +49,12 @@ def handle(self, *args, **options):
4249 fields = self .get_model_all_fields (Model )
4350 else :
4451 fields = fields .split (',' ) if fields is not None else []
45-
46- exclude_fields = exclude_fields .split (
47- ',' ) if exclude_fields is not None else []
48-
49- for field in exclude_fields :
50- if field in fields :
51- fields .remove (field )
52+ if exclude_fields :
53+ exclude_fields = exclude_fields .split (
54+ ',' ) if exclude_fields is not None else []
55+ for field in exclude_fields :
56+ if field in fields :
57+ fields .remove (field )
5258
5359 if 'pk' not in fields :
5460 fields .append ('pk' )
0 commit comments