Django Rest framework FilterSet 設置 help_text


問題描述:

  • 在model中設置了help_text后,但並沒有在drf的doc中顯示

解決方法:

  • 重載filter_for_field方法然后將help_text加到extra中
    • 例:
    class UserFilter(rest_framework.FilterSet):
        class Meta:
            model = User
            fields = '__all__'
    
        @classmethod
        def filter_for_field(cls, field, field_name, lookup_expr='exact'):
            filter_class = super().filter_for_field(field, field_name, lookup_expr)
            filter_class.extra['help_text'] = field.help_text
            return filter_class
    
    
  • 也可以直接修改django_filters.rest_framework下面的FilterSet, 重寫filter_for_field方法, 不用每個filter都寫了,繼承他就ok了, 不過這樣的缺點就是部署時需要修改對應環境的FilteSet, 可以通過直接下載django_filters保存到項目里來,再修改, 然后就不用擔心了
class FilterSet(filterset.FilterSet):
    ...
    @classmethod
    def filter_for_field(cls, field, field_name, lookup_expr='exact'):
        filter_class = super().filter_for_field(field, field_name, lookup_expr)
        filter_class.extra['help_text'] = field.help_text
        return filter_class

參考鏈接: https://github.com/carltongibson/django-filter/issues/754


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM