【发布时间】:2021-01-02 20:32:28
【问题描述】:
为什么我的 django-filter 输入框没有出现?我正在尝试用此过滤系统替换搜索栏,因此当他们在标题中搜索特定用户名时,他们将被定向到 account/filter_results.html 页面以显示过滤结果。但是,只出现了提交按钮,而没有出现输入框。请指教
filters.py
import django_filters
from account.models import Account
class UserNameFilter(django_filters.FilterSet):
username = django_filters.CharFilter(lookup_expr='icontains')
class Meta:
model = Account
fields = ['username']
views.py
def account_search_view(request, *args, **kwargs):
context = {}
account = Account.objects.all()
context['account'] = account
username = UserNameFilter(request.GET, queryset=Account.objects.all())
context['username'] = username
return render(request, "account/filter_results.html", context)
urls.py
urlpatterns = [
path('search/', account_search_view, name="search"),
]
header.html 页面
<form method="get">
{{ username.form }}
<input class="btn btn-success" type="submit"/>
</form>
filter_results.html 页面
{% for obj in username.qs %}
{{ obj.email }} - ${{ obj.price }}<br />
{% endfor %}
models.py
class Account(AbstractBaseUser):
email = models.EmailField(verbose_name="email", max_length=60, unique=True)
username = models.CharField(max_length=30, unique=True)
【问题讨论】:
标签: python django django-filter