from django_filters import FilterSet from .models import Users, AcademicProfile, ResearchGroup, GroupMembership class UsersFilter(FilterSet): class Meta: model = Users fields = { 'name': ['icontains', 'exact'], 'openid': ['icontains', 'exact'], 'appid': ['icontains', 'exact'], 'vip': ['exact'], 'vip_time': ['exact'], 'is_delete': ['exact'], 'developer': ['exact'], 't_code': ['icontains'], 'ip': ['icontains'], 'avatar': ['icontains'], 'create_time': ['exact', 'lt', 'gt'], 'update_time': ['exact', 'lt', 'gt'], } class AcademicProfileFilter(FilterSet): class Meta: model = AcademicProfile fields = { 'role': ['exact', 'icontains'], 'enrollment_year': ['exact', 'lt', 'gt'], 'graduation_year': ['exact', 'lt', 'gt'], 'department': ['icontains'], 'major': ['icontains'], 'research_tags': ['icontains'], 'skill_tags': ['icontains'], } class ResearchGroupFilter(FilterSet): class Meta: model = ResearchGroup fields = { 'name': ['icontains', 'exact'], 'description': ['icontains'], 'created_by': ['exact'], 'created_at': ['exact', 'lt', 'gt'], 'is_active': ['exact'], } class GroupMembershipFilter(FilterSet): class Meta: model = GroupMembership fields = { 'role': ['exact'], 'status': ['exact'], 'joined_at': ['exact', 'lt', 'gt'], 'left_at': ['exact', 'lt', 'gt'], }