2017-05-17 2 views
0

은 내가 함수에 또 다른 새로운 매개 변수를 추가하지 않을 경우, 쿼리쿼리하는 동안 ** kwarg를 쉽게 업데이트 할 수 있습니까? 장고

def user_profile(self, **kwargs): 
    default_fields = { 
     'is_deleted': False, 
     'is_staff': False, 
     'is_active': False 
    } 
    kwargs.update(default_fields) 

    return Profile.objects.filter(**kwargs) 

을 호출하지만의 말을 할 때 코드를 재 작성 나에게 도움이 같은 기능 ...이 그리고 가끔 is_staff 필드를 무시하고 싶습니다. * 어쩌면 20 개의 쿼리 중 1 개만 필요합니다. is_staff: True이 필요합니다.

쉬운 방법이 있습니까?

True/False이 작동하는지 확인하기 위해 함수에 다른 매개 변수를 추가하는 방법을 생각했습니다.

하지만이 방법을 사용하는 것이 더 쉬운 방법일까요?

미리 제안 해 주셔서 감사합니다.

+0

병합에 대해 두 dicts 더 많은 정보를 찾을 수 있습니다 http://stackoverflow.com/questions/38987/how-to-merge-two-python-dictionaries-in-a-single-expression#26853961 – bomba1990

답변

0

이 시도 :

def user_profile(self, **kwargs): 
    default_fields = { 
     'is_deleted': False, 
     'is_staff': False, 
     'is_active': False 
    } 
    default_fields.update(kwargs) 

    return Profile.objects.filter(**default_fields) 

은 기본적으로 당신의 default_fields은 기본 DICT로 DICT 설정하면, 'is_staff'을 무시하려는 경우 단지 kwargs로를 통해 is_staff 통과 할 수 있도록. 여기

관련 문제