我如何通过删除标签并将其设为占位符来在一行中添加 Django 过滤器?

how can i add Django Filter in one line by removing the label and making it placeholder?

这是我的filters.py

class StudentFilterSel(django_filters.FilterSet):
class Meta:
    model=Student
    fields=['registrationSession','registrationNumber','studentName','applyingForClass','studentDob','studentAadharNum','fathersName','fathersContactNumber']

这是我的views.py

def selectedList(request):
Studentss=Student.objects.filter(AdmissionStatus='Selected')
myFilter=StudentFilterSel(request.GET,queryset=Studentss)
Studentss=myFilter.qs
return render(request,"register/selectedList.html",{'myfilter':myFilter,"Studentss":Studentss})

这是我的 HTML 文件

<form method='get'>
{{myfilter.form}}
<button type="submit">search</button>
 </form>

我的 table 中需要很多过滤器,但它们变得扭曲并变成多行 我怎样才能删除标签并将其更改为占位符以减少 space?

您可以自定义小部件,就像在表单中一样。以下内容适用于文本输入字段:

studentName = django_filters.CharFilter(label='', 
                 lookup_expr='icontains', 
                 widget=forms.widgets.TextInput(attrs={'placeholder':'Student Name'}))

或者您可以在过滤器的初始化中完成。以下内容适用于选择字段:

def __init__(self, *args, **kwargs):
    super(StudentFilterSel, self).__init__(*args, **kwargs)
    self.filters['registrationSession'].label = ''
    self.filters['registrationSession'].extra['empty_label'] = "Registration"