django-filters에서 ChoiceField 필터링을위한 별칭 생성

잉와 르

일부 모델에 대해 다음과 같은 필터 세트가 있습니다.

class MyModel(models.Model):
    STATUS_ACTIVE = 0
    STATUS_DONE = 1
    STATUSES = (
        (STATUS_ACTIVE, 'Active'),
        (STATUS_DONE, 'Done'),
    )

    status = models.IntegerField(choices=STATUSES, default=STATUS_ACTIVE)


class ModelFilter(FilterSet):
    status = ChoiceFilter(choices=MyModel.STATUSES)

    class Meta:
        model = MyModel
        fields = (
            'status',
        )

API를 요청할 때 status를 number-으로 사용해야합니다 /app/model?status=0.

/app/model?status=active모델을 변경하지 않고 번호 대신 사용할 수 있도록 별칭을 만드는 방법은 무엇입니까?

잉와 르

마지막으로 라이브러리 내부에서 소스 코드를 발견하고이 솔루션을 만들었습니다.

class AliasesChoiceField(ChoiceField):
    def valid_value(self, value):
        for _, v in self.choices:
            if value == v or str(value) == str(v):
                return True
        return False

class AliasesChoiceFilter(ChoiceFilter):
    field_class = AliasesChoiceField
    def filter(self, qs, value):
        for val, alias in self.extra['choices']:
            if value == alias:
                return super(AliasesChoiceFilter, self).filter(qs, val)
        return super(AliasesChoiceFilter, self).filter(qs, value)

AliasesChoiceField.valid_value()난 그냥 제대로 검증 값에 간단한 변경으로 기본 방법을 복사.

AliasesChoiceFilter사용 field_class전 단지로 교체, 그래서 확인을 위해 ChoiceFilter및 변경 filter()방법 나의 선택 매개 변수의 올바른 매핑에.

마지막으로 내 모델은 다음과 같습니다.

class ModelFilter(FilterSet):
    STATUSES = (
        (MyModel.STATUS_ACTIVE, 'active'),
        (MyModel.STATUS_DONE, 'done')
    )
    status = AliasesChoiceFilter(choices=STATUSES)

그리고 API 경로 /app/model?status=active가 올바르게 작동하여 필터링에 올바른 상태를 설정합니다.

그러나! 이 솔루션은 Django Admin 또는 웹 API 인터페이스를 통해 작동하지 않습니다. 실제 값을 제공하고 0대신 전달하려고하기 때문 입니다.active

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Django FormWizard 필터링 ChoiceField

분류에서Dev

django 쿼리 셋에서 사용할 속성 필드의 별칭 만들기

분류에서Dev

Django 생성 별칭 쿼리 출력

분류에서Dev

MySQL 테이블 별칭 이름 만 유니온에서 첫 번째 별칭을 생성 함

분류에서Dev

DJANGO에서 동적으로 생성 된 URL에 대한 URL 별칭을 설정하는 방법은 무엇입니까?

분류에서Dev

`git log --all --decorate --graph --oneline`에 대한 git 별칭 생성

분류에서Dev

babelrc에서 의존성 별칭을 생성하는 방식으로 typescript에서 타이핑 별칭을 생성하는 방법?

분류에서Dev

Django보기에서 for 루프로 ChoiceField 선택 속성 재정의

분류에서Dev

ChoiceField : 선택은 Django 시작에서만 형성됩니다.

분류에서Dev

cd 별칭에 대한 Bash 완성

분류에서Dev

별칭에 대한 Bash 자동 완성

분류에서Dev

mosh (ssh) 별칭에 대한 탭 완성?

분류에서Dev

bashrc에서 디렉터리를 생성하기위한 날짜 스탬프 별칭

분류에서Dev

discord py에서 공백으로 별칭을 어떻게 생성합니까?

분류에서Dev

모델 FloatField 속성 Django에 대한 ChoiceField를 사용하여 ModelForm을 사용자 정의하는 방법

분류에서Dev

Django-filters : TextField 필터링을위한 선택 목록 표시

분류에서Dev

TypeScript에서 유형에 대한 별칭 표시 비활성화

분류에서Dev

Entity Framework에서 생성 한 열 별칭을 어떻게 얻을 수 있습니까?

분류에서Dev

Apache VirtualHost 내에서 별칭 및 디렉터리 구성

분류에서Dev

Exchange 2010에서 성 및 별칭을 변경하는 사용자

분류에서Dev

터미널에서 생성 된 별칭이 tmux에 표시되지 않습니다. 왜?

분류에서Dev

DataMapper 속성에 대한 별칭을 정의해야합니다.

분류에서Dev

Django의 템플릿에서 ChoiceField를 렌더링 할 수 없습니다.

분류에서Dev

Django-서버 효율성을위한 캐시 대 QuerySet 필터?

분류에서Dev

zsh에서 동일한 이름을 가진 별칭에 대한 탭 완성

분류에서Dev

React Static Boilerplate에서 웹팩 가져 오기 별칭을 어떻게 생성합니까?

분류에서Dev

오류 (stderr)를 필터링하기 위해 Bash에서 별칭이나 함수를 작성할 수 있습니까?

분류에서Dev

다형성 연관 속성에 대한 Rails 별칭

분류에서Dev

PyYAML의 생성자에서 앵커 (별칭) 허용

Related 관련 기사

  1. 1

    Django FormWizard 필터링 ChoiceField

  2. 2

    django 쿼리 셋에서 사용할 속성 필드의 별칭 만들기

  3. 3

    Django 생성 별칭 쿼리 출력

  4. 4

    MySQL 테이블 별칭 이름 만 유니온에서 첫 번째 별칭을 생성 함

  5. 5

    DJANGO에서 동적으로 생성 된 URL에 대한 URL 별칭을 설정하는 방법은 무엇입니까?

  6. 6

    `git log --all --decorate --graph --oneline`에 대한 git 별칭 생성

  7. 7

    babelrc에서 의존성 별칭을 생성하는 방식으로 typescript에서 타이핑 별칭을 생성하는 방법?

  8. 8

    Django보기에서 for 루프로 ChoiceField 선택 속성 재정의

  9. 9

    ChoiceField : 선택은 Django 시작에서만 형성됩니다.

  10. 10

    cd 별칭에 대한 Bash 완성

  11. 11

    별칭에 대한 Bash 자동 완성

  12. 12

    mosh (ssh) 별칭에 대한 탭 완성?

  13. 13

    bashrc에서 디렉터리를 생성하기위한 날짜 스탬프 별칭

  14. 14

    discord py에서 공백으로 별칭을 어떻게 생성합니까?

  15. 15

    모델 FloatField 속성 Django에 대한 ChoiceField를 사용하여 ModelForm을 사용자 정의하는 방법

  16. 16

    Django-filters : TextField 필터링을위한 선택 목록 표시

  17. 17

    TypeScript에서 유형에 대한 별칭 표시 비활성화

  18. 18

    Entity Framework에서 생성 한 열 별칭을 어떻게 얻을 수 있습니까?

  19. 19

    Apache VirtualHost 내에서 별칭 및 디렉터리 구성

  20. 20

    Exchange 2010에서 성 및 별칭을 변경하는 사용자

  21. 21

    터미널에서 생성 된 별칭이 tmux에 표시되지 않습니다. 왜?

  22. 22

    DataMapper 속성에 대한 별칭을 정의해야합니다.

  23. 23

    Django의 템플릿에서 ChoiceField를 렌더링 할 수 없습니다.

  24. 24

    Django-서버 효율성을위한 캐시 대 QuerySet 필터?

  25. 25

    zsh에서 동일한 이름을 가진 별칭에 대한 탭 완성

  26. 26

    React Static Boilerplate에서 웹팩 가져 오기 별칭을 어떻게 생성합니까?

  27. 27

    오류 (stderr)를 필터링하기 위해 Bash에서 별칭이나 함수를 작성할 수 있습니까?

  28. 28

    다형성 연관 속성에 대한 Rails 별칭

  29. 29

    PyYAML의 생성자에서 앵커 (별칭) 허용

뜨겁다태그

보관