def filter_user(nickname = Empty, gender = Empty):
query_condition, query_set = "", MUser.objects
if nickname is not Empty:
query_condition += "nickname = {} ".format(nickname)
query_set = query_set.filter(nickname__contains=nickname)
if gender is not Empty:
query_condition += "gender = {} ".format(gender)
query_set = query_set.filter(gender=gender)
logger.info("query with condition {}".format(query_condition))
return [
item.to_dict()
for item in query_set
]
写法2
优点:
没有多余变量,显得更简洁
缺点:
写的时候IDE补全不方便
def filter_user(nickname = Empty, gender = Empty):
query_args = {}
if nickname is not Empty:
query_args['nickname__contains'] = nickname
if gender is not Empty:
query_args['gender'] = gender
query_set = MUser.objects.filter(**query_args)
logger.info("query with condition {} ".format(query_args))
return [
item.to_dict()
for item in query_set
]
写法1
优点:
缺点:
写法2
优点:
缺点: