問題描述:
- 在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